W3C 验证失败,路径段中的非法字符:不允许 space

W3C Validation Failed, Illegal character in path segment: space is not allowed

<img src="webpage photos/alcazar.jpg" alt="Alcazar Palace">

验证器显示的错误:元素 img 上属性 src 的错误值网页 photos/alcazar.jpg:路径段中的非法字符:space 是不允许的。

我一删除 spaces,就尝试按照某些在线建议用连字符或 %20 替换它们,但出现更多错误,但网页正常运行。

这里似乎有什么问题?

谢谢

src 的值包含不允许作为合法值的 space。请将图像移出到另一个路径中没有任何 space 的地方,然后重新 link 到它。

url中不能出现白色的space,需要替换为%20

As soon as I remove the spaces I try to replace them by hyphens or %20 as recommended by some online I get even more errors

W3C 验证服务会抱怨缺少 doctype 声明和 title 元素以及 lang 属性

所以当你检查更多代码时

<!DOCTYPE html>
<html lang="en-us">
<head>
  <title>Some title</title>
</head>
<body>
  <img src="webpage%20photos/alcazar.jpg" alt="Alcazar Palace">
</body>
</html>

你得到Document checking completed. No errors or warnings to show.

您可以使用 PHP 函数 str_replace() 将空格替换为 %20。
但是你可能最好使用 PHP 函数 rawurlencode() 因为它会编码任何其他应该编码的东西。

在文件名的基本名称上使用 rawurlencode(),或者在您的情况下,每个目录名。这会将空格转换为 %20,等等。

您不希望在对 rawurlencode() 的调用中包含目录分隔符“/”,因为它们也会被转换并且无法正常工作。