我有一些文章存储在数据库中的文本字段中。有时,当文章包含<textarea>content.....</textarea>时,问题是当使用php在页面上显示内容时,它包含实际的<br><br><br>。<br>是由文本编辑器(CKEditor)放置在那里的,因此它看起来如下所示
<textarea><--这实际上是一个文本区域
该内容显示在文本区域<br>中,但问题是<br>也会显示出来。</textarea>
如何只从<br>标记中剥离<textarea>。我想一些预替换会很有用。
发布于 2010-01-06 05:33:36
$x='<br><textarea>abcd<br>efgh</textarea><br><br>';
echo preg_replace('/<textarea>.*?<\/textarea>/e','str_replace("<br>","","\\0")',$x);
//<br><textarea>abcdefgh</textarea><br><br>如果您使用<br />,请适当地更新它。
发布于 2010-01-06 05:12:35
有一种方法
$str= <<<A
<textarea> <-- this actually becomes a textarea
This content is shown inside the text area<br> but the problem is that the <br> is also shown. </textarea>
A;
$s = explode("</textarea>",$str);
for($i=0;$i<count($s)-1;$i++){
if(strpos($s[$i],"<textarea>")!==FALSE){
$s[$i] = preg_replace("/<br>/","",$s[$i]);
}
}
print implode("</textarea>",$s);发布于 2010-01-06 05:28:17
您看过数据库正在存储的内容了吗?可能是在写入数据库之前是HTMLencoding存储的,所以您看到的实际上是:
<br />当您使用CKEditor和TinyMCE生成的字段时,当它在$_POSTing之前转义字段时,会发生这种情况。
https://stackoverflow.com/questions/2010851
复制相似问题