PHP Simple HTML DOM Parser: Accessing custom attributes(PHP 简单 HTML DOM 解析器:访问自定义属性)
问题描述
我想访问我添加到 HTML 文件中某些元素的自定义属性,这是 littleBox="somevalue" 属性的示例
I want to access a custom attribute that I added to some elements in an HTML file, here's an example of the littleBox="somevalue" attribute
<div id="someId" littleBox="someValue">inner text</div>
以下不起作用:
foreach($html->find('div') as $element){
echo $element;
if(isset($element->type)){
echo $element->littleBox;
}
}
我看到一篇有类似问题的文章,但由于某种原因我无法复制它.这是我尝试过的:
I saw an article with a similar problem, but I couldn't replicate it for some reason. Here is what I tried:
function retrieveValue($str){
if (stripos($str, 'littleBox')){//check if element has it
$var=preg_split("/littleBox="/",$str);
//echo $var[1];
$var1=preg_split("/"/",$var[1]);
echo $var1[0];
}
else
return false;
}
每当我调用 retrieveValue() 函数时,什么都没有发生.$element (在上面的第一个 PHP 示例中)不是字符串吗?我不知道我是否错过了什么,但它没有返回任何东西.
When ever I call the retrieveValue() function, nothing happens. Is $element (in the first PHP example above) not a string? I don't know if I missed something but it's not returning anything.
这是完整的脚本:
<?php
require("../../simplehtmldom/simple_html_dom.php");
if (isset($_POST['submit'])){
$html = file_get_html($_POST['webURL']);
// Find all images
foreach($html->find('div') as $element){
echo $element;
if(isset($element->type)!= false){
echo retrieveValue($element);
}
}
}
function retrieveValue($str){
if (stripos($str, 'littleBox')){//check if element has it
$var=preg_split("/littleBox="/",$str);
//echo $var[1];
$var1=preg_split("/"/",$var[1]);
return $var1[0];
}
else
return false;
}
?>
<form method="post">
Website URL<input type="text" name="webURL">
<br />
<input type="submit" name="submit">
</form>
推荐答案
你试过了吗:
$html->getElementById("someId")->getAttribute('littleBox');
您也可以使用 SimpleXML:
You could also use SimpleXML:
$html = '<div id="someId" littleBox="someValue">inner text</div>';
$dom = new DOMDocument;
$dom->loadXML($html);
$div = simplexml_import_dom($dom);
echo $div->attributes()->littleBox;
我建议不要使用正则表达式来解析 html,但这部分不应该是这样的:
I would advice against using regex to parse html but shouldn't this part be like this:
$str = $html->getElementById("someId")->outertext;
$var = preg_split('/littleBox="/', $str);
$var1 = preg_split('/"/',$var[1]);
echo $var1[0];
另请参阅此答案https://stackoverflow.com/a/8851091/1059001
这篇关于PHP 简单 HTML DOM 解析器:访问自定义属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:PHP 简单 HTML DOM 解析器:访问自定义属性
基础教程推荐
- 将变量从树枝传递给 js 2022-01-01
- 主题化 Drupal 7 的 Ubercart “/cart"页 2021-01-01
- 使用 scandir() 在目录中查找文件夹 (PHP) 2022-01-01
- PHPUnit 的 Selenium 2 文档到底在哪里? 2022-01-01
- php 7.4 在写入变量中的 Twig 问题 2022-01-01
- 如何在数学上评估像“2-1"这样的字符串?产生“1"? 2022-01-01
- Yii2 - 在运行时设置邮件传输参数 2022-01-01
- php中的foreach复选框POST 2021-01-01
- php中的PDF导出 2022-01-01
- Web 服务器如何处理请求? 2021-01-01
