PHP 撇号逃脱了破坏链接

发布于 2024-11-02 22:31:14 字数 362 浏览 0 评论 0原文

我获得了一组表示 URL 链接的数据。如:“doug'sfood.jpg”

我将这些字符串保存在一个数组中,然后随机选择它们以显示将它们插入

<img src="doug'sfood.jpg"></img>

Chrome 输出的是:

<img src="doug&#39;sfood.jpg"></img>

我尝试用 php 转义 (\') 撇号替换引号,但是这个刚刚提前结束了报价。

有人可以帮助我吗?谢谢。

I was provided with a set of data that represents URL links. Such as: "doug'sfood.jpg".

.

I keep these strings in an array, and then select them randomly to display inserting them into an

<img src="doug'sfood.jpg"></img>

What Chrome is putting out is:

<img src="doug'sfood.jpg"></img>

I tried replacing the quotes with a php escaped (\') apostrophe, but this just ended the quote prematurely.

Can someone help me? Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

旧梦荧光笔 2024-11-09 22:31:14

我认为 Chrome 会自动转义未正确转义的字符。

始终使用:

<img src="quote'quote.jpg" alt="" />

代替:

<img src="quote'quote.jpg" alt="" />

在 HTML 中应始终对某些字符进行转义,例如:

' -> '
& -> & or &

检查 htmlspecialchars()urlencode() 函数,例如:

$string = "quote'quote.jpg";

echo htmlspecialchars($string, ENT_QUOTES);
// quote'quote.jpg

echo urlencode($string);
// quote%27quote.jpg

I think Chrome automatically escapes characters that are not correctly escaped.

Always use:

<img src="quote'quote.jpg" alt="" />

Instead of:

<img src="quote'quote.jpg" alt="" />

Certain characters should always be escaped in HTML, for example:

' -> '
& -> & or &

Check the htmlspecialchars() and urlencode() functions, example:

$string = "quote'quote.jpg";

echo htmlspecialchars($string, ENT_QUOTES);
// quote'quote.jpg

echo urlencode($string);
// quote%27quote.jpg
哭泣的笑容 2024-11-09 22:31:14

无论如何,在打印文件名标签时,请使用 urlencode() 而不是依赖 HTML转义或浏览器行为:

foreach ($img as $href) {
    print '<img src="' . urlencode($href) . '" />';        
}

在您的示例中,这将成为 doug%27sfood.jpg (也称为正确的方法)。希望您的网络服务器可以找到它。

Anyway, when printing out the filename tags, use urlencode() rather than relying on HTML escapes or browser behaviour:

foreach ($img as $href) {
    print '<img src="' . urlencode($href) . '" />';        
}

This will become doug%27sfood.jpg in your example (AKA the correct way to do it). Which hopefully can be located by your webserver.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文