【问题标题】:How to get custom attribute using PHP Simple HTML Dom?如何使用 PHP Simple HTML Dom 获取自定义属性?
【发布时间】:2015-11-19 09:55:24
【问题描述】:

我的 HTML 中有带有自定义属性的标签

...
<img alt='test' width='20' height='20' title='test' loadlater='path_to_img.png' />
...

当我使用str_get_html 加载我的代码时,一切正常。我可以通过 DOM 导航,我可以搜索,...但是当我从图像标签中读取属性时

foreach($data->find("img") as $_img) {
    print_r($_img->attr);
}

我只获得有效的 HTML 属性(alt、title、width、height)。缺少属性loadlater

有人设法解析自定义属性吗?

【问题讨论】:

    标签: php simple-html-dom


    【解决方案1】:

    对我来说看起来不错。

    <?php
    require_once "./vendor/autoload.php";
    
    $str = "<img alt=\'test\' width=\'20\' height=\'20\' title=\'test\' loadlater=\'path_to_img.png\' />";
    
    $dom = \Sunra\PhpSimple\HtmlDomParser::str_get_html( $str );
    
    foreach($dom->find("img") as $_img) {
        print_r($_img->attr);
    }
    

    结果

    Array
    (
        [alt] => \'test\'
        [width] => \'20\'
        [height] => \'20\'
        [title] => \'test\'
        [loadlater] => \'path_to_img.png\'
    )
    

    作曲家:

    "require": {
        "sunra/php-simple-html-dom-parser": "v1.5.0"
    }
    

    【讨论】:

    • 我忘了补充说我用这个类:sourceforge.net/projects/simplehtmldom我一定会尝试建议的,如果一切正常就切换!
    • 嗯......它使用相同的功能......他们只是在这个文件之前添加了类......对我来说它仍然不起作用,这很奇怪。
    • 是的,它只是一个用composer安装库的包装器。它适用于 php 5.5、libxml 2.9。你的版本是什么?另外,答案中 sn-p 的确切输出是什么?
    • 问题是 loadlater 属性中的特殊字符。我只是剪下数据并将其显示为文本,然后它就起作用了。
    【解决方案2】:

    这对我有用:

    $html = <<<EOF
    <img alt='test' width='20' height='20' title='test' loadlater='path_to_img.png' />
    EOF;
    
    $dom = str_get_html($html);
    
    echo $dom->find('img', 0)->loadlater;
    

    【讨论】:

      猜你喜欢
      • 2014-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多