使用PHP将Image超链接转换为<img/>

时间:2011-07-15 15:39:22

标签: php string replace

我有这个代码块,它有一个图像的URL。怎么能用src将其转换为标签?这是示例代码

    <div class="field-items">
        <div class="field-item odd"><a type="image/jpeg; length=72486" href="http://www.xyz-website.com/files/263780_147936011949340_128540677222207_316406_533387_n.jpg">263780_147936011949340_128540677222207_316406_533387_n.jpg</a></div></div>

所以从上面的代码中,我想把它转换成像这样的东西

<div><img src="http://www.xyz-website.com/files/263780_147936011949340_128540677222207_316406_533387_n.jpg"/><div>

我也希望为特定域执行此操作。在上面的例子中它的xyz-website.com

谢谢。

3 个答案:

答案 0 :(得分:0)

以下是您需要的代码。您需要修改它以更具体地满足您的需求。但是这使用正则表达式来帮助提取图像路径并将所有找到的图像保存到一个数组中,然后您可以使用它来输出它。

$str = '<div class="field-items"><div class="field-item odd"><a type="image/jpeg; length=72486" href="http://www.xyz-website.com/files/263780_147936011949340_128540677222207_316406_533387_n.jpg">263780_147936011949340_128540677222207_316406_533387_n.jpg</a></div></div>';

preg_match('/href="(.)+"/', $str, $matches);
$image_extensions = array('.jpg', '.bmp', '.png');

foreach ($matches AS $match)
  foreach ($image_extensions AS $ext)
    if (stristr($match, $ext . '"')) //I add the double-quote to the string to signify the end of the href param and prevent string detection confusion
      $images[] = str_replace(array('href="', '"'), '', $match);

foreach ($images AS $image)
  echo "<div><img src='$image'/><div>";

答案 1 :(得分:-1)

使用正则表达式。

preg_replace('~<div class="field-item odd"><a type="image/jpeg; length=72486" href="(.+?)">(?:.+?)</a></div></div>~i', '<div><img src="$1"/><div>', $str);

类似这样的事情

答案 2 :(得分:-1)

你可以爆炸a标签并获取你想要的信息:

$all_html = '263780_147936011949340_128540677222207_316406_533387_n.jpg';
$tmp1 = explode('href="', $all_html);
$tmp2 = explode('"', $tmp1[1]);
$image_url = $tmp2[0];
if (strpos($image_url, 'xyz-website.com') > -1) {
    //only output image if the url of the image includes 'xyz-website.com'
    echo '';
}