Предупреждение о создании объекта по умолчанию из пустого значения генерируется, когда тег отсутствует. Как решить?

Строгие стандарты: создание объекта по умолчанию из пустого значения в ‹--php_page_file_path--> в строке ‹-- line_number-->

include('functions/simple_html_dom.php');
$content=str_get_html($submission);
$content->find('a', 0)->class='article-link';
$content->find('a', 0)->target='_blank';
$content->find('a', 0)->rel='nofollow';
$content->find('img', 0)->class='article-inner-image';

Переменная $submission будет получать данные POST из формы. Он может содержать или не содержать теги <a> и <img>. Когда оба присутствуют, предупреждение не выдается. Но когда один или оба тега отсутствуют, выдается это предупреждение. Как я могу решить эту проблему?


person Sarvap Praharanayuthan    schedule 12.11.2013    source источник
comment
Не могли бы вы отредактировать свой вопрос и добавить предупреждение?   -  person Brice    schedule 12.11.2013
comment
Вы говорите, что когда вы не отправляете тег ‹a›, вы анализируете этот html, а затем в нем нет тега ‹a›. Приятель, тебе интересно, почему он жалуется, когда ты пытаешься установить атрибуты для несуществующего тега ‹a›??   -  person marekful    schedule 12.11.2013
comment
@Brice: первые две строки описания проблемы — это предупреждение.   -  person Sarvap Praharanayuthan    schedule 12.11.2013
comment
@MarcellFülöp: Ситуация такова, что форма находится в блоге. Люди могут вставлять изображения или гиперссылки. Поэтому, если они вставляют гиперссылки и тег <img>, я хочу добавить к нему определенный класс. Я мог понять, что предупреждение связано с отсутствием тегов. Но как я могу настроить добавление атрибутов только в том случае, если тег присутствует.   -  person Sarvap Praharanayuthan    schedule 12.11.2013
comment
Это хорошо, но это не решение. Это проблема. В любом случае, смотрите мой ответ ниже.   -  person marekful    schedule 12.11.2013


Ответы (1)


Когда HTML анализируется, проверьте, существуют ли определенные элементы, прежде чем изменять их.

// Check if and '<a>' tag was submitted
if($a = $content->find('a', 0)) {

  // If so, set attributes on it.
  $a->class='article-link';
  ...
}

// Check if an '<img>' tag was submitted
if($img = $content->find('img', 0)) {
  ...
}
person marekful    schedule 12.11.2013