Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.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中获取html标记_Php_Html_Preg Match - Fatal编程技术网

在php中获取html标记

在php中获取html标记,php,html,preg-match,Php,Html,Preg Match,我希望在php中获得特定元素的标记,我想我可以通过preg_match实现这一点,但我不确定 基本上我有这样的想法: <label>Some Jazz</label> 一些爵士乐 我想做的是: 如果tag=label,那么就做些什么,否则就做些别的 问题是从html标记获取标签部分。我是怎么找到这个的。无论你的想法多么受欢迎 我没有提到我不想要“一些爵士乐”,我想看看标签是不是标签这是在参考一些答案,它让我知道标记之间的内容,而不是标记本身。我非常喜欢使用简单的HTM

我希望在php中获得特定元素的标记,我想我可以通过preg_match实现这一点,但我不确定

基本上我有这样的想法:

<label>Some Jazz</label>
一些爵士乐 我想做的是:

如果tag=label,那么就做些什么,否则就做些别的

问题是从html标记获取标签部分。我是怎么找到这个的。无论你的想法多么受欢迎


我没有提到我不想要“一些爵士乐”,我想看看标签是不是标签这是在参考一些答案,它让我知道标记之间的内容,而不是标记本身。

我非常喜欢使用简单的HTML DOM进行解析

http://simplehtmldom.sourceforge.net/
看看是不是:

<?php

//External html or you can set this by string
$html = file_get_contents("http://example.com/"); 

//Parse html to object
$doc = new DOMDocument();
@$doc->loadHTML($html); //To prevent some html errors

//Labels
$labels = $doc->getElementsByTagName('label');

//For each label
for ($i = 0; $i < $labels->length; $i++) {

    $label = $labels->item($i);

    //Check label value
    if($label->nodeValue == 'something') {
        //Do something
    }
    else {
        //Do something
    }
}

?>


参考代码,如果HTML变得更加复杂,您可能需要考虑使用XPath。请参阅我建议使用的示例:。这没有帮助,因为我不关心值,我关心标记。忽略值部分,不是您想要的吗?通过脚本,我发布了一个答案,你可以得到标签标签。如果上载的html没有标记标签,则方法
getElementsByTagName
返回0。