2013-08-27 4 views
0

У меня есть вопрос относительно DomDocumentКак манипулировать строки в PHP

В моем предыдущем questoin .. How to detect certain characters and wrap them with another string?

я могу получить таблицу присвоить строку. Тем не менее, есть некоторые ячейки таблицы, которая содержит

<input type='text' value='input value'/> 

так как

<td><input type='text' value='input value'/></td> 

Я хочу, чтобы удалить input тега, но по-прежнему отображается 'input value' в моей камере, как нет поля ввода. Мне нужно это, потому что мне нужно отобразить мою строку в моем письме.

Я не могу сделать это на стороне клиента.

Есть ли все равно для этого? Благодарю.

+1

Почему вы не можете сделать это на стороне клиента? Это было бы очень легко с JavaScript/JQuery – imulsion

+1

@imulsion. Похоже, что это для электронной почты, поэтому javascript не будет очень полезен. –

ответ

2

Вы можете извлечь значение входного сигнала с помощью DomDocument и соответствующего XPath:

$html = "<td><input type='text' value='input value'/></td>"; 
$dom = new DOMDocument(); 
$dom->loadHTML($html); 

$xpath = new DOMXPath($dom); 

$inputtags = $xpath->query('//input[@type="text"]'); 
foreach ($inputtags as $tag) { 
    $value = $tag->getAttribute('value'); 
} 

Выход:

input value 

Примечание: XPath используется здесь только для демонстрационных целей. Может быть несколько элементов с типом ввода как text, и, вероятно, неплохо использовать более твердый XPath. Однако это должно помочь вам начать.

Demo!

+0

Спасибо Amal, как мне получить новое значение $ save обратно в исходный html? Мой html не так прост, как здесь. Я думаю о saveHTML(), но не знаю, с чего начать. Благодарю. +1 – FlyingCat

+0

@FlyingCat: приведенный выше код позволяет вам извлечь значение входного элемента из вашего HTML. Значение будет храниться в '$ value', и вы можете вывести свой HTML-код, как я сделал в демо. Но, если вы хотите сделать это способом DOM, используйте ['replaceChild'] (http://php.net/manual/en/domnode.replacechild.php) и/или' 'removeChild' '(http://php.net/manual/en/domnode.removechild.php) –

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