PHP来纠正TinyMCE URL转换

时间:2017-03-08 17:53:19

标签: php tinymce

自定义CMS中使用的TinyMCE,将网址中的&符号转换为html实体,如下所示:

<img src="https://maps.googleapis.com/maps/api/staticmap?markers=15.44,-14.57&amp;zoom=14&amp;size=250x180&amp;sensor=false" alt="map" />

此图片导致错误&#34; Google Maps API服务器拒绝了您的请求。非法请求。错过了#size;&#39; 。参数&#34;

我无法改变TinyMCE行为(没有任何效果)。

或者,我想在保存到DB之前使用PHP来查找 - 替换所有href / src。

如何在PHP中编码以搜索href / src网址的字符串$ post并找到&符号html实体代码并将其替换为&#34;&amp;&#34; ?

我尝试了使用preg_replace的示例,但无法使其工作。

1 个答案:

答案 0 :(得分:0)

我得到了它,希望它可以帮助别人。

$str = '<a href="https://some.com/?m=1&amp;z=2&amp;s=3&amp;r=f">some text</a><img src="https://maps.googleapis.com/maps/api/staticmap?markers=136.22,-186.74&amp;zoom=14&amp;size=250x180&amp;sensor=false" alt="map" />';

$re = '/(href|src)=("[^"]*")/'; 
preg_match_all($re, $str, $matches);
foreach ($matches[0] as $match){
    $conv = str_replace('&amp;', '&', $match);
    $str = str_replace($match, $conv, $str);
}

echo $str; // &amp; in url converted to &