2010-11-13 26 views
32

nó luôn luôn là thói quen của tôi rằng khi bao giờ tôi sử dụng hình ảnh i tên họ như walls_ico, bu_hovercú pháp href: là nó okay để có không gian trong tên tập tin

vì vậy khi tôi cho con đường họ đi như

<img src="images/walls_ico.ico" /> 
<img src="buttons/bu_hover.png" /> 

cho đến bây giờ khi tôi đang trên một dự án mà người dùng tải lên các tập tin ...

tôi đã tự hỏi là nó không quan trọng để có các khoảng trống giữa các tập tin và thư mục tên như

0.123.
<img src="buttons/bu hover.png" /> 
+1

** liên quan: ** [? Trong một URL, nên không gian được mã hóa sử dụng% 20 hoặc +] (http://stackoverflow.com/q/1211229/1497596) – DavidRR

Trả lời

47

Thuộc tính src phải chứa valid URL. Kể từ space characters are not allowed trong URL, bạn phải encode them.

Bạn có thể viết:

<img src="buttons/bu%20hover.png" /> 

Nhưng không:

<img src="buttons/bu+hover.png" /> 

Bởi vì, như DavidRR chính đáng chỉ ra trong bình luận của ông, nhân vật không gian mã hóa như + chỉ có giá trị trong chuỗi truy vấn một phần của URL, không phải trong chính đường dẫn.

+2

Về cơ bản chỉ url mã hóa src, nếu bạn đang làm việc với php chỉ cần sử dụng: http://php.net/manual/en/function.urlencode.php –

+0

Tôi biết tôi nên đã đăng câu trả lời của tôi trước khi kiểm tra sự thật ... =/của tôi kể từ khi tôi nói khá nhiều điều tương tự tôi đã xóa m y trả lời. 1 cho tốc độ của bạn, thưa bạn! = b –

+1

** Chú ý: ** [Dịch vụ xác thực đánh dấu W3C] (http://validator.w3.org/) không gắn cờ các giá trị 'a/@ href' với dấu cách trong các tệp chuyển tiếp XHTML mà tôi đã chọn. – DavidRR

-3
<body> 
<img src="file:///C|/Documents and Settings/All Users/Documents/My Pictures/Sample Pictures/Water lilies.jpg" 
</body> 

không gian sẽ được phép chỉ khi bạn đang làm việc trong host nội bộ

+3

Chúng thực sự không được cho phép, những gì có thể xảy ra để hoạt động trong một trường hợp sẽ bị hỏng tùy thuộc vào trình duyệt và loại tài liệu. – Tobu

4

Trích dẫn HTML5 để sao Frederic rằng không gian không được phép:

http://www.w3.org/TR/html5/links.html#attr-hyperlink-href:

Thuộc tính href trên các phần tử a và khu vực phải có giá trị là URL hợp lệ có khả năng được bao quanh bởi dấu cách.

Định nghĩa về "URL hợp lệ" điểm đến: http://url.spec.whatwg.org trong đó xác định các điểm mã URL https://url.spec.whatwg.org/#url-code-points: "!"

điểm mã

URL là ASCII chữ và số, "$", "&", "'", "(", ")", "*", "+", ",", "-", ".", "/", ":", ";", "=", "? "," @ "," _ "," ~ "và các điểm mã trong phạm vi từ U + 00A0 đến U + D7FF, U + E000 đến U + FDCF, U + FDF0 đến U + FFFD, U + 10000 đến U + 1FFFD, U + 20000 đến U + 2FFFD, U + 30000 đến U + 3FFFD, U + 40000 đến U + 4FFFD, U + 50000 đến U + 5FFFD, U + 60000 đến U + 6FFFD, U + 70000 đến U + 7FFFD, U + 80000 đến U + 8FFFD, U + 90000 đến U + 9FFFD, U + A0000 đến U + AFFFD, U + B0000 đến U + BFFFD, U + C0000 đến U + CFFFD, U + D0000 tới U + DFFFD, U + E1000 đến U + EFFFD, U + F0000 đến U + FFFFD, U + 100000 đến U + 10FFFD.

Các spec sau đó sử dụng các điểm mã URL dài trên các bộ phận khác nhau của thuật toán phân tích cú pháp như sau:

Nếu c không phải là điểm mã EOF, không phải là một điểm mã URL, và không phải là "%" , phân tích lỗi.

cho sơ đồ, quyền hạn, đường dẫn tương đối, trạng thái truy vấn và trạng thái phân đoạn: do đó toàn bộ URL.

1

Nếu bạn đang sử dụng PHP

sau đó tìm hiểu mã này

$result = mysqli_query($con,$sql); 
    //echo $ip."<br />";REGEXP 
    //echo $name."<br />"; 
    echo "<table border=2px style='border-radius=20px;' align=center><tr> 
    <th>Document ID</th> 
    <th>Document Name Type</th> 
    <th>Download Documents</th> 
    </tr>";//<th>Project Document Type</th> 
    while($row = mysqli_fetch_array($result)) { 
     $path1=$row['FOLDERNAME'] .'/'. $row['FILENAME'] .'.'. $row['DOCTYPE']; 
     $path=str_replace(" ", '%20', $path1); 
     echo "<tr>"; 
     echo "<td>" . $row['DocID'] . "</td>"; 
     // echo "<td>" . $row['PROJDOCTYPE'] . "</td>";Thank you. Your Apple ID is now ready for use. 
     echo "<td>" . $row['DOCNAME'] . "</td>"; 
     echo '<td><a href=Tender/'.$path.'>'.$row['DOCNAME'].'</a></td>'; 
     echo "</tr>"; 
    } 
    echo "</table>"; 

    mysqli_close($con);