找到textarea并替换为其他东西

时间:2011-12-16 12:43:03

标签: php regex

<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并用东西替换它们。从字符串中获取以下数组的方法是什么:

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

1 个答案:

答案 0 :(得分:2)

  1. 使用DOMDocument->loadHTML()将HTML加载为DOM树
  2. 查找textarea元素(及其文本节点)
  3. 替换为相关元素。
  4. 比照。 Robust, Mature HTML Parser for PHP


    本质上:避免这类任务的正则表达式。如果您坚持(并且保证HTML与指示一样简单),请尝试:

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

    demo