2011-12-16 52 views
1
<html> 
<head><title>Example page</title></head> 
<body> 
<textarea name="description">This is some text</textarea> 
<input type='text' name='bla' value='a textinput' /> 
<textarea name="interests">What i like to do</textarea> 
</body> 
</html> 

上面的html代码是变量的值。我想抓住所有的textareas并用某些东西代替它们。什么是摆脱后面的字符串数组方式:查找textarea并用其他东西替换

1: <textarea name="description">This is some text</textarea> 
2: <textarea name="interests">What i like to do</textarea> 

回答

2
  1. 使用DOMDocument->loadHTML()加载HTML作为DOM树,
  2. 找到textarea元素(和他们的文本节点)
  3. 更换与相关元素。

参考Robust, Mature HTML Parser for PHP


本质:避免这种任务的正则表达式。如果您坚持(和HTML是保证所指示的那样简单),尝试:

preg_replace('/<textarea name="([^"]+)">([^<]+)<\/textarea>/', '<input type="text" name="\\1" value="\\2">', $yourHtmlString); 

demo