如果使用PHP为空,则添加到锚的空文本节点

时间:2012-09-14 15:04:44

标签: php regex

我正在使用电子商务插件的WP网站上工作;除此之外,这个插件存储和检索产品图像。麻烦的是,如果产品没有分配图像,它会在文本节点中返回一个没有任何内容的锚标记,如下所示:

<a id="product_image_id" href="..."></a>

我想远离搞乱插件的核心功能,以便我可以继续升级路径,并希望使用PHP检查返回的字符串是否为空文本节点并将其替换为'没有图像可用'图像如此:

<a id="product_image_id" href="..."><img src="..." /></a>

我已经尝试过所有方式的PHP子字符串/替换函数,但没有取得任何成功,并且已经碰壁了。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

很高兴你解决了!

我有一个基于SimpleXmlElement的解决方案:

$xs2 = '<a id="product_image_id" href="..."><img src="..." /></a>';
$xml = new SimpleXMLElement($xs2);

foreach ($xml->children() as $child)
  echo $child->getName();

通过观察孩子,很容易看出是否有图像存在。我不是,添加一个节点并返回SimpleXMLElement->asXml;

答案 1 :(得分:0)

对于任何有兴趣的人,我都是这样解决的:

$thumbnail = function_that_returns_formatted_image();
$thumbnail_content = strip_tags($thumbnail, '<img>'); // Strip out </a> and ignore </img>
if (empty($thumbnail_content)) // Check for </img> tag
    $thumbnail = '<img src="/path/to/temporary_image.jpg" />';

我希望这对某人有所帮助!