%22(双引号)无处不在地添加到url中

时间:2013-06-19 09:28:25

标签: php url tinymce

我正在制作一个邮件程序,用于向客户邮寄新闻通讯,在新闻通讯中将是图像和链接。当我在localhost上测试它时,一切正常,链接工作正常。但是,当我将其上传到我的网站时,链接和图像路径将不再起作用。

出于某种原因,它将%22(我发现它是双引号“)添加到链接和路径,因此我邮寄的链接如下所示:

/%22http//www.mywebsite.com/%22

图像路径如下所示:

%22http//www.mywebsite.com/content/someimage.jpg/%22

我正在使用TinyMCE编辑简报,我尝试了relative_urls : falseconvert_urls : false,但这没有做任何事情。我不认为这是一个TinyMCE问题,但我认为无论如何我都会提到它。

我不知道造成这种情况的原因如果有人知道它会发生什么事情会很棒!

更新: 我检查了我的代码并查看了邮件中发送的文本的html,并且链接周围没有双引号,所以我的猜测是它是服务器问题。

2 个答案:

答案 0 :(得分:5)

magic_quotes这是一个问题。检查你的phpinfo(),看看它是否已关闭。如果你能把它关闭你必须在php.ini中禁用它。

您可以使用以下代码测试它是启用还是禁用:

<?php
echo "Magic quotes is ";
if (get_magic_quotes_gpc()) {
  echo "enabled.";
} else {
  echo "disabled";
}
?>

另一个修复可能是使用stripslashes()删除斜杠。这很可能会解决问题。

阅读有关stripslashes() HERE

的文档

一个简单的例子:

<?php
$str = "Is your name O\'reilly?";

// Outputs: Is your name O'reilly?
echo stripslashes($str);
?>

编辑:您可以尝试的另一件事是使用html_entity_encode()

一个例子:

<?php
$orig = "I'll \"walk\" the <b>dog</b> now";

$a = htmlentities($orig);

$b = html_entity_decode($a);

echo $a; // I'll &quot;walk&quot; the &lt;b&gt;dog&lt;/b&gt; now

echo $b; // I'll "walk" the <b>dog</b> now
?>

info HERE

另一个答案。对于网址中的html_entity_encode() https://stackoverflow.com/a/10001006/1379394

答案 1 :(得分:1)

如果您无权访问您的php.ini文件,最简单的方法是将此添加到您的 .htaccess文件:

php_flag magic_quotes_gpc关闭