自定义CMS中使用的TinyMCE,将网址中的&符号转换为html实体,如下所示:
<img src="https://maps.googleapis.com/maps/api/staticmap?markers=15.44,-14.57&zoom=14&size=250x180&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的示例,但无法使其工作。
答案 0 :(得分:0)
我得到了它,希望它可以帮助别人。
$str = '<a href="https://some.com/?m=1&z=2&s=3&r=f">some text</a><img src="https://maps.googleapis.com/maps/api/staticmap?markers=136.22,-186.74&zoom=14&size=250x180&sensor=false" alt="map" />';
$re = '/(href|src)=("[^"]*")/';
preg_match_all($re, $str, $matches);
foreach ($matches[0] as $match){
$conv = str_replace('&', '&', $match);
$str = str_replace($match, $conv, $str);
}
echo $str; // & in url converted to &