Php 将换行符替换为<;p>;标签
我有一个带有文本区域的表单,我想将输入中的换行符更改为段落(使用Php 将换行符替换为<;p>;标签,php,Php,我有一个带有文本区域的表单,我想将输入中的换行符更改为段落(使用标记)。我使用explode and Inclode将\n替换为,但是如果一行中有两个换行符,那么最后会出现。我试图使用foreach循环遍历每个元素,并检查它是否为空,以解决这个问题,但它似乎根本不起作用。以下是我所拥有的: foreach($text as $value){ if($value!=''){ $newtext.='</p><p>'.$value; } } f
标记)。我使用explode and Inclode将\n
替换为,但是如果一行中有两个换行符,那么最后会出现。我试图使用foreach循环遍历每个元素,并检查它是否为空,以解决这个问题,但它似乎根本不起作用。以下是我所拥有的:
foreach($text as $value){
if($value!=''){
$newtext.='</p><p>'.$value;
}
}
foreach($text作为$value){
如果($value!=''){
$newtext.=''.$value;
}
}
这仍然为双倍间隔的事物提供了。我还尝试用替换if($value!='')
!为空(trim($value))
但仍不起作用。我的代码出了什么问题,我如何修复它?类似的东西可以工作:
$newtext = '<p>' . implode('</p><p>', array_filter(explode("\n", $textarea))) . '</p>';
$newtext=''。内爆(“”,数组过滤器(explode(“\n“,$textarea)))。' ",;
通过在换行符上拆分创建数组\n
过滤掉空的元素
用p
标签连接在一起
一种简单的方法是获取段落数组:
$paragraphs = preg_split('/\n+/', $yourString);
然后以
的形式将它们回音出来:
foreach($paragraphs as $p)
{
if(strlen($p) > 0)
{
echo "<p>$p</p>";
}
}
foreach($p)
{
如果(strlen($p)>0)
{
回声“$p”;
}
}
函数text2paragraph($text){
$array=explode(“\n”,$text);
foreach($array作为$element){
如果(strlen($element)>1){
$taged.=''.$element.';
}
}
返回$taged;
}
将文本拆分为“\n”上的数组
通过foreach添加“p”标签
检查“p”元素是否为空(如果为空元素,则将其移除)
返回带标签的文本 有一个函数可以添加
标记,这可能就足够了。如果您想获得
标记,您需要在换行符处拆分,并将这些块包装在..
中。
function text2paragraph( $text ){
$array = explode("\n", $text);
foreach($array as $element){
if( strlen($element) > 1){
$tagged .= '<p>'.$element.'</p>';
}
}
return $tagged;
}