删除带有某种颜色样式php的span标记

时间:2013-09-22 09:24:15

标签: php regex preg-replace

我正在从网页上读取数据,但我需要帮助编写preg_replace函数的模式。

该网页包含样式颜色=#767676

的span标记内的“无能力,影响力或力量”

我希望能够在没有span标签的情况下仅输出“没有能力,影响力或力量”。我有什么方法可以根据span标签内的样式颜色来做到这一点?因为文件中有许多其他span标记。

这是我写的代码:

$link="http://www.myWebsite.com";
$inputlink = @file_get_contents($link) or die('Could not access file: $link');
    // To output the span tag that has style=color:#767676
$outputlink = preg_replace('/(<[^>]+) style="color:#767676"/i', '$1', $inputlink);
    // To remove the span tags
$string = preg_replace("/<span[^>]+\>/i", "", $outputlink);
echo strip_tags($string);//OUTPUT : Without ability, influence, or power

我将整个网站内容作为输出。如果你能给我一个链接,我可以学习编写模式,我也非常感激。

谢谢

1 个答案:

答案 0 :(得分:1)

您可以使用:

<?php

$link = 'http://www.myWebsite.com';
$inputlink = @file_get_contents($link) or die('Could not access file: $link');

我认为页面“http://www.myWebsite.com”是这样的:

<span style="color:#767676">Without ability, influence, or power</span> <span>if you see this part or see last part in gray color, your regexp is wrong!</span>

现在让我们写一些正则表达式

$pattern = '/<span style="color:#767676">([^<]+)(?<!<\/span>)<\/span>/';
preg_match($pattern, $text, $matches);
echo $matches[1];

它会在没有Without ability, influence, or power标记的情况下输出<span>