【问题标题】:Avoiding warning when creating attribute in PHP Simple HTML DOM Parser在 PHP Simple HTML DOM Parser 中创建属性时避免警告
【发布时间】:2015-09-20 22:30:11
【问题描述】:

PHP Simple HTML DOM Parser 创建属性的方式

file_get_html("http://google.com")->find('body')->bgcolor = '&675432';

在 PHP 5.6.13 上会导致警告

Creating default object from empty value

.

是否有某种方法可以在不更改错误报告级别或根据Creating default object from empty value in PHP? 破坏代码的情况下创建没有此类警告的属性?

这种污损必须手动创建一个对象,而该对象不存在,但在上面的示例中,它确实存在。

编辑:var_dump(file_get_html("http://google.com")->find('body'));

给予

数组(1){ [0]=> 对象(simple_html_dom_node)#18(9){ [“节点类型”]=> 整数(1) [“标签”]=> 字符串(4)“身体” [“属性”]=> 数组(1){ ["bgcolor"]=> 字符串(4)“#fff” } [“孩子”]=> 数组(6){ [0]=> 对象(simple_html_dom_node)#19(9){ [“节点类型”]=> 整数(1) [“标签”]=> 字符串(6)“脚本” [“属性”]=> 数组(0){ } [“孩子”]=> 数组(0){ } [“节点”]=> 数组(1){ [0]=> 对象(simple_html_dom_node)#20(9){ [“节点类型”]=> 整数(3) [“标签”]=> 字符串(4)“文本” [“属性”]=> 数组(0){ } [“孩子”]=> 数组(0){ } [“节点”]=> 数组(0){ } [“父母”]=> 递归 [“_”]=> 数组(1){ [4]=> string(16) "噪音 1007" } ["tag_start"]=> 整数(0) ["dom":"simple_html_dom_node":private]=> 对象(simple_html_dom)#1 (23) { [“根”]=> 对象(simple_html_dom_node)#2(9){ [“节点类型”]=> 整数(5) [“标签”]=> 字符串(4)“根” [“属性”]=> 数组(0){ } [“孩子”]=> 数组(2){ [0]=> 对象(simple_html_dom_node)#3(9){ [“节点类型”]=> 整数(6) [“标签”]=> 字符串(7)“未知” [“属性”]=> 数组(0){ } [“孩子”]=> 数组(0){ } [“节点”]=> 数组(0){ } [“父母”]=> 递归

【问题讨论】:

    标签: php


    【解决方案1】:

    我不确定您所说的“破坏代码”是什么意思,但答案在您发布的链接中。

    如果 $e 不是一个对象,你需要将它声明为一个。这是通过以下方式完成的:

    $e = new stdClass()

    您也可以使用$e = (object) []。它本质上做同样的事情,你输入一个空白数组到一个对象。

    【讨论】:

    • 谢谢,但答案不在我发布的链接中,因为这个问题不需要破坏代码,而那个答案会破坏:-)
    • "如果 $e 不是一个对象" 谢谢,但是我已经改进了这个例子来展示它是如何不适用的。
    • ChrisJJ,如果它是一个对象,您将不会收到该警告。发送var_dump(file_get_html("http://google.com")->find['body']) 并将其作为 Q 的更新发布。
    • 会的。哎呀,我的 find[] 当然应该是 find()。
    【解决方案2】:
    file_get_html("http://google.com")->find('body',0)->bgcolor = '&675432';
    

    find() 正在返回一个数组。虽然根据错误消息我看不到这是一个“空值”,但添加了“,0”,find()返回一个元素,正如“->”所要求的那样。

    【讨论】:

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