背景
在Wordpress中有一个名为wpautop的函数。它会在输出中自动添加段落br-tags。
问题
我在 $ content 字符串中有一个textarea,我不希望在该textarea中自动格式化。可能是字符串中不止一个textarea。
示例字符串 - 在wpautop之前
This is my text. My paragraph.
<textarea class="test">
<html>Code test</html>
</textarea>
示例字符串 - 在wpautop之后
<p>This is my text. My paragraph</p>
<textarea class="test">
<br />
<html>Code test</html><br />
</textarea>
可能的解决方案
答案 0 :(得分:1)
$splited=preg_split('#<textarea.*?</textarea>#s', $text, PREG_SPLIT_DELIM_CAPTURE);
for ($i=0; $i<count($splited); $i+=2)
$splited[$i]=wpatoup($splited[$i]);
echo implode('', $splited);
答案 1 :(得分:1)
检查一下它会有所帮助
$textareas = '<textarea>
<html>Code test1</html>
</textarea>
<textarea class="test1">
<html>Code test2</html>
</textarea>
<textarea class="test3">
<html>Code test3</html>
</textarea>
<textarea class="test4">
<html>Code test4</html>
</textarea>';
error_reporting(E_ERROR|E_PARSE);
$dom = new DOMDocument();
$dom->loadHTML($textareas);
$xml = simplexml_import_dom($dom);
$data = $xml->xpath('//textarea');
foreach($data as $key=>$value):
echo $data[$key][$key+1]."<br/>";
endforeach;