我正努力实现以下目标:
在PHP代码中,我有两个变量:
表示HTML字符串的一个
另一个只是一个网址(例如http://example.net/script.php/?param1=x¶m2=y)
我想找到HTML字符串中没有HREF的所有图像,并添加一个HREF标记,其中包含第二个变量所包含的URL。
示例1:
<td valign="middle"><a href="https://www.facebook.com"><img src="http://example.net/email_images/social-facebook.jpg" alt="" border="0" /></a></td>
结果:应保持不变(HREF已存在)
示例2:
<td valign="middle"><img src="http://example.net/email_images/social-facebook.jpg" alt="" border="0" /></a></td>
结果:应添加HREF标记(HREF最初不存在)
我正在尝试使用preg_replace(),但是在寻找正确的正则表达式的情况下使用它。
任何帮助将不胜感激!
答案 0 :(得分:0)
试试这个
<?php
$html ='<span><img src="http://imageexists.png" /><span><IMg class>';
$url = 'www.example.com';
if(preg_match_all( '/(<img[^>]+>)+/i', $html, $matches)){
echo '<pre>';
if(isset($matches[1])){
foreach($matches[1] as $match){
if( strpos($match, 'src=') === false){
$notfound = $match;
$br = explode('>', $notfound);
$final_result = $br[0].' src="'.$url.'" '.'>';
$html = str_ireplace( $notfound,$final_result, $html);
}
}
}
}
echo htmlentities($html);
?>