Мне здесь очень помогли, и я настолько близок к решению своей проблемы, что могу ее попробовать. Но я, кажется, застрял.
Мне нужно очистить простую форму от локального веб-сервера и вернуть только те строки, которые соответствуют локальной электронной почте пользователя (то есть onemyndseye @ localhost). simplehtmldom упрощает извлечение правильного элемента формы:
foreach($html->find('form[action*="delete"]') as $form) echo $form;
Возвращает:
<form action="/delete" method="post">
<input type="checkbox" id="D1" name="D1" /><a href="http://www.linux.com/rss/feeds.php">
http://www.linux.com/rss/feeds.php
</a> [email:
onemyndseye@localhost (Default)
]<br />
<input type="checkbox" id="D2" name="D2" /><a href="http://www.ubuntu.com/rss.xml">
http://www.ubuntu.com/rss.xml
</a> [email:
onemyndseye@localhost (Default)
]<br />
<input type="submit" name="delete_submit" value="Delete Selected" /></form>
Однако я не могу сделать следующий шаг. Который возвращает строки, содержащие onemyndseye @ localhost, и удаляет его, так что возвращается только следующее:
<input type="checkbox" id="D1" name="D1" /><a href="http://www.linux.com/rss/feeds.php">http://www.linux.com/rss/feeds.php</a> <br />
<input type="checkbox" id="D2" name="D2" /><a href="http://www.ubuntu.com/rss.xml">http://www.ubuntu.com/rss.xml</a> <br />
Благодаря замечательным пользователям этого сайта, я дошел до этого и даже могу вернуть только ссылки, но у меня возникают проблемы с получением остальных ... Важно, чтобы полные теги <input>
возвращались ТОЧНО, как показано выше, Значения идентификатора и имени необходимо будет впоследствии вернуть в исходную форму в данных поста.
Заранее спасибо!
***** EDIT ******
Теперь проблема близка к решению благодаря Якоби. Последнее небольшое препятствие заключается в том, что от str_ireplace осталось немного мусора. Возможно, было бы легче удалить весь текст между </a>
и <br />
...?
После добавления Якоби вывод будет следующим:
<form action="/delete" method="post">
<input type="checkbox" id="D1" name="D1" /><a href="http://www.linux.com/rss/feeds.php">
http://www.linux.com/rss/feeds.php
</a> [email:
(Default)
]<br />
<input type="checkbox" id="D2" name="D2" /><a href="http://www.ubuntu.com/rss.xml">
http://www.ubuntu.com/rss.xml
</a> [email:
(Default)
]<br />
<input type="checkbox" id="D3" name="D3" /><a href="http://mythbuntu.org/rss.xml">
http://mythbuntu.org/rss.xml
</a> [email:
]<br />
<input type="submit" name="delete_submit" value="Delete Selected" /></form>
Обратите внимание, что [email: (по умолчанию)] и [email:] остались позади. Также необходимо удалить действие формы и, наконец, отправить строки, но эту часть, я думаю, я могу извлечь из предыдущего предложения.
***** SOLVED ****
проблема решена с помощью:
$html = file_get_html('http://localhost:9000/');
foreach($html->find('form[action*="delete"]') as $form)
if ( stripos($form->innertext, 'onemyndseye@localhost') !== false ){
$form = preg_replace('!</a>.*?<br />!s', '</a><br />', $form);
echo $form;
}
Спасибо за помощь!