Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.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_Regex_Parsing_Dom - Fatal编程技术网

Php 如何通过正则表达式收集HTML链接中的文本?

Php 如何通过正则表达式收集HTML链接中的文本?,php,html,regex,parsing,dom,Php,Html,Regex,Parsing,Dom,我得到了一个带有链接的字符串(作为无序列表()中的a-元素,以HTML格式)。如何使用正确的正则表达式来解析它 我需要得到这个值的数组: [ "Керамическая плитка", "Напольные покрытия" ] 基本HTML(示例): 多谢各位。非常感谢你的帮助 解析器是您应该使用的工具,而不是正则表达式。大概是这样的: <?php $links = '<li><a href="/plitka/">Керамич

我得到了一个带有链接的字符串(作为无序列表(
  • )中的
    a
    -元素,以HTML格式)。如何使用正确的正则表达式来解析它

    我需要得到这个值的数组:

    [
        "Керамическая плитка", 
        "Напольные покрытия"
    ]
    
    基本HTML(示例):


  • 多谢各位。非常感谢你的帮助

    解析器是您应该使用的工具,而不是正则表达式。大概是这样的:

    <?php
    $links = '<li><a href="/plitka/">Керамическая плитка</a></li> 
    <li><a href="/napolnye-pokrytiya/">Напольные покрытия</a></li> 
    <li><a href="/oboi/">Обои</a></li> 
    <li><a href="/mebel-dlia-vannoi/">Мебель для ванной</a></li> 
    <li><a href="/santehnika/">Сантехника</a></li>';
    $dom = new domdocument();
    $dom->loadhtml('<?xml encoding="utf-8" ?>' . $links);
    $links = $dom->getelementsbytagname('a');
    foreach($links as $link) {
        echo $link->nodeValue . PHP_EOL;
    }
    

    欢迎来到堆栈溢出。请阅读关于如何提供一个你可能也会受益于和嗨,欢迎堆栈溢出。请你修改一下你的问题,澄清一下好吗。请包括您的相关PHP代码,并澄清(如果代码没有)您正在解析的确切内容。另外,请解释为什么css是相关的或删除该标记。谢谢。您是否正在尝试获取每个
    将为您提供的
    的值?解析它们的目的是什么?当涉及到你真正想问的问题时,你需要明确。只是一个便条。如果需要解析HTML。我不能使用解析器工具,它不是php内置的。所以我写正则表达式的目的是什么?我该怎么做?@StephanGolubev您使用的是什么PHP版本
    domdocument
    应该在那里,对不起,我会检查一下。@user3783243-domdocument依赖于默认情况下在许多系统上没有安装/启用的xml扩展。例如,我认为您通常需要在Ubuntu上手动安装它。@StephanGolubev-为什么您不能安装/启用xml扩展?你基本上是说你不能使用合适的工具来完成工作。
    <?php
    $links = '<li><a href="/plitka/">Керамическая плитка</a></li> 
    <li><a href="/napolnye-pokrytiya/">Напольные покрытия</a></li> 
    <li><a href="/oboi/">Обои</a></li> 
    <li><a href="/mebel-dlia-vannoi/">Мебель для ванной</a></li> 
    <li><a href="/santehnika/">Сантехника</a></li>';
    $dom = new domdocument();
    $dom->loadhtml('<?xml encoding="utf-8" ?>' . $links);
    $links = $dom->getelementsbytagname('a');
    foreach($links as $link) {
        echo $link->nodeValue . PHP_EOL;
    }