2012-06-13 4 views
0

Почему этот блок кода PHP Simple HTML DOM не работает? Он должен найти все теги <b> в документе HTML и изменить их текст на «жирный текст». Он ничего не делает.PHP Simple DOM find не работает

$contentEdited2 = new simple_html_dom(); 
$contentEdited2->load($html); 

$bolds = $contentEdited2->find('b'); 

foreach($bolds as $b) 
    $b->innertext = "bold text"; 

Я пытался понять это в течение прошедшего часа. Любая помощь будет оценена.

ответ

0

Вы не изменяете исходную переменную $html, а только локальную копию, которая существует только в цикле.

Вы можете изменить свой цикл, чтобы:

foreach($bolds as &$b) // assign value by reference 
    $b->innertext = "bold text"; 

Или:

foreach($contentEdited2->find('b') as &$b) 
    $b->innertext = "bold text"; 
+0

я вижу. Но он по-прежнему делает то же самое (ничего) с этим '&' –

+0

@Dan Man. И если вы делаете прямо: 'foreach ($ contentEdited2-> find ('b') as & $ b)'? '$ bolds', вероятно, также нужно назначить по ссылке ... – jeroen

+0

Прошу прощения, я не понимаю. Можете ли вы дать мне лучший пример? –

Смежные вопросы