PHP preg_match_all-如何从HTML获取内容?

PHP preg_match_all-如何从HTML获取内容?,php,html,regex,Php,Html,Regex,$Content包含HTML文档 $contents = curl_exec ($ch) 我需要从以下位置获取内容: <span class="Menu1">Artur €2000</span> 而不是: <span class="Menu1">Content</tr> 内容 我没想到会有人写出错误的HTML。谢谢你们的帮助 您忘记了第一个分隔符(@): $contents='Artur$2000 somehtml标记$100

$Content包含HTML文档

   $contents = curl_exec ($ch)  
我需要从以下位置获取内容:

 <span class="Menu1">Artur €2000</span>
而不是:

 <span class="Menu1">Content</tr>
内容

我没想到会有人写出错误的HTML。谢谢你们的帮助

您忘记了第一个分隔符(
@
):

$contents='Artur$2000 somehtml标记$1000';
preg_match_all('@(.*)@si',$contents,$wynik2);
印刷费($wynik2);
/*
排列
(
[0]=>阵列
(
[0]=>2000欧元
[1] =>马克1000美元
)
[1] =>阵列
(
[0]=>2000欧元
[1] =>马克1000美元
)
)
*/

您忘记了第一个分隔符(
@
):

$contents='Artur$2000 somehtml标记$1000';
preg_match_all('@(.*)@si',$contents,$wynik2);
印刷费($wynik2);
/*
排列
(
[0]=>阵列
(
[0]=>2000欧元
[1] =>马克1000美元
)
[1] =>阵列
(
[0]=>2000欧元
[1] =>马克1000美元
)
)
*/
您应该在正则表达式的开头和结尾加上这个符号“
|
”:

preg_match_all("|<span class=\"Menu1\">(.*?)</span>|U",$contents,$wynik2);
preg_match_all(“|(.*?|U)”,$contents,$wynik2);
您应该在正则表达式的开头和结尾加上这个符号“
|
”:

preg_match_all("|<span class=\"Menu1\">(.*?)</span>|U",$contents,$wynik2);
preg_match_all(“|(.*?|U)”,$contents,$wynik2);

谢谢,但现在我看到一个空数组:数组(2){[0]=>array(0){}[1]=>array(0){}$content看起来是这样的:somehtml-Artur$2000 somehtml-Mark$1000换句话说,当我回显$contents时,我看到了从CURL得到的所有HTML。谢谢,但现在我看到一个空数组:array(2){[0]=>array(0){}[1]=>array(0){}$content如下所示:somehtml Artur$2000 somehtml Mark$1000换句话说:当我回显$contents时,我会看到我从CURL获得的所有HTML。将HTML解析为DOM,然后从所需元素中提取内容肯定会更好。请看,将HTML解析为DOM,然后提取内容形式肯定会更好你想要的元素。请看我仍然看到:数组(2){[0]=>array(0){}[1]=>array(0){}}contents包含来自CURL的html文档:$contents=CURL\u exec($ch);您应该使用它从php$contents=file_get_contents(“path/to/your/domain”)中任何站点的内容中获取数据;不幸的是,我需要发送POST[id]来查看该站点的内容,这就是为什么我在这里使用CURL,因为您的$contents是空数据,您可以尝试回显它!您需要将其放入代码curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);要使用CURL从帖子页面获取返回数据,我仍然可以看到:array(2){[0]=>array(0){}[1]=>array(0){}}contents包含来自CURL的html文档:$contents=CURL\u exec($ch);您应该使用它从php$contents=file_get_contents(“path/to/your/domain”)中任何站点的内容中获取数据;不幸的是,我需要发送POST[id]来查看该站点的内容,这就是为什么我在这里使用CURL,因为您的$contents是空数据,您可以尝试回显它!您需要将其放入代码curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);使用CURL从帖子页面获取返回数据
$contents = '<span class="Menu1">Artur $2000</span> somehtml <span class="Menu1">Mark $1000</span>';
preg_match_all('@<span class="Menu1">(.*?)</span>@si', $contents, $wynik2);

print_r($wynik2);
/*
Array
(
    [0] => Array
        (
            [0] => <span class="Menu1">Artur $2000</span>
            [1] => <span class="Menu1">Mark $1000</span>
        )

    [1] => Array
        (
            [0] => Artur $2000
            [1] => Mark $1000
        )

)
*/
preg_match_all("|<span class=\"Menu1\">(.*?)</span>|U",$contents,$wynik2);