Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用特定颜色样式删除span标记_Php_Regex_Preg Replace - Fatal编程技术网

Php 使用特定颜色样式删除span标记

Php 使用特定颜色样式删除span标记,php,regex,preg-replace,Php,Regex,Preg Replace,我正在从网页上读取数据,但我需要帮助为preg_replace函数编写模式 该网页在span标签内包含“无能力、无影响力或无权力”,样式颜色=#7676 我希望能够在没有span标记的情况下只输出“没有能力、影响或权力”。是否有任何方法可以根据span标记内的样式颜色进行此操作?因为文件中有许多其他span标记 以下是我编写的代码: $link="http://www.myWebsite.com"; $inputlink = @file_get_contents($link) or die('C

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

该网页在span标签内包含“无能力、无影响力或无权力”,样式颜色=#7676

我希望能够在没有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
$link=”http://www.myWebsite.com";
$inputlink=@file\u get\u contents($link)或die(‘无法访问文件:$link’);
//要输出style=color的span标记,请执行以下操作:#7676
$outputlink=preg_replace('/(]+)style=“color:#767676”/i'、'$1'、$inputlink);
//删除跨度标记的步骤
$string=preg\u replace(“/]+\>/i”,”,$outputlink);
回音条标签($string)//输出:没有能力、影响力或权力
我得到整个网站的内容作为输出。如果你能给我提供一个链接,让我了解写作模式,我也会非常感激

谢谢

您可以使用:

<?php

$link = 'http://www.myWebsite.com';
$inputlink = @file_get_contents($link) or die('Could not access file: $link');
现在让我们编写一些正则表达式

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

它将输出无能力、影响或能力的
,无
标记的

你的意思是页面数据是无能力、影响或能力的
,除此之外没有其他内容吗?不,这是一个有许多其他span和div标记的网页。但我想不出任何其他方法来提取此特定文本:“没有能力、影响力或力量”,所以我在想是否有办法根据颜色提取它。您使用了
strip_tags()
,它删除了span和其他标记,那么使用
preg_replace()的原因是什么
?!我使用第一个preg_replace仅获取颜色样式为767676的span标记,并删除所有其他标记(标记之间包含内容的其他span标记和div标记)。我只想检索此字符串:“无能力、影响或力量”“。我使用了第二个preg_replace来删除span标记,但我的方法可能是错误的。是否有其他解决方法?如果有任何建议,将不胜感激。我将模式更改为较短的形式。现在您也可以从模式中删除
(?)
,使其更短。”。
$pattern = '/<span style="color:#767676">([^<]+)(?<!<\/span>)<\/span>/';
preg_match($pattern, $text, $matches);
echo $matches[1];