Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 向左格式化文本_Php_Regex_Preg Replace_Trim_Nl2br - Fatal编程技术网

Php 向左格式化文本

Php 向左格式化文本,php,regex,preg-replace,trim,nl2br,Php,Regex,Preg Replace,Trim,Nl2br,我正在创建一个格式化工具,从文章中剥离内容以供打印。可以看到演示。完整的来源是可用的 现在,工具条正在格式化,并且还可以通过使用nl2br保留段落。我想做的是能够将内容向左移动,并且只有在内容之间出现中断时才有段落 例如: 这 是 首先 段落 第二段 变成: 这是第一段 第二段 我尝试使用正则表达式来检查末尾是否有两个空格,但没有效果。以下是一些示例代码: HTML: 这方面的任何帮助都会很好 编辑:包括示例 POST textbox=“你好,简 你今天怎么样 我希望一切都好” 大多数文本将来

我正在创建一个格式化工具,从文章中剥离内容以供打印。可以看到演示。完整的来源是可用的

现在,工具条正在格式化,并且还可以通过使用
nl2br
保留段落。我想做的是能够将内容向左移动,并且只有在内容之间出现中断时才有段落

例如:




首先
段落

第二段

变成:

这是第一段

第二段

我尝试使用正则表达式来检查末尾是否有两个空格,但没有效果。以下是一些示例代码: HTML:

这方面的任何帮助都会很好

编辑:包括示例

POST textbox=“你好,简

你今天怎么样

我希望一切都好”

大多数文本将来自电子邮件和其他来源,基本上它需要是超性别的。

你可以写这个

$text = preg_replace('@\n([a-z])@Us', ' \1', trim($text));
你需要的正则表达式是

/(

用空格替换它

更新

一个小的修正


$text ="This
is
a
paragraph  

Second Paragraph";

$lb = "true";
if($lb=="true"){
            $text2 = preg_replace('/(?<!\r\n)\r\n(?=\w)/', ' ', trim($text));

        }

echo $text2;

$text=“这个
是
A.
段落
第二段”;
$lb=“true”;
如果($lb==“真”){

$text2=preg_replace('/(?如果我没有弄错的话,这是在文本之前添加了2个空格,请使用此
$text=preg_replace('@\s*?\n*\s*([a-z])@Us','\1',trim($text))
谢谢@azat,这太接近了,它只是在每个字母之间添加了一个空格。如果我删除
'\1'
中的空格,第二段可以工作,但第一段没有空格。谢谢你的帮助。它似乎在代码板上工作,但在我的实际软件上不起作用是
htmlentities
stripslashes
nl2br
going要对格式做些什么并破坏preg_replace?请尝试
/(?-使其更通用,如果您可以在
htmlentities
nl2br
之后粘贴真实输入,我可以微调正则表达式。这会产生php错误:
警告:preg_replace():编译失败:lookbehind断言在偏移量9处不是固定长度的。谢谢!请提供您正在处理的真实数据示例。文本来自文本框。或多或少会有人从电子邮件等处复制。我在上面添加了一个示例。我的主机看不到
/r/n
$text = preg_replace('@\n([a-z])@Us', ' \1', trim($text));

$text ="This
is
a
paragraph  

Second Paragraph";

$lb = "true";
if($lb=="true"){
            $text2 = preg_replace('/(?<!\r\n)\r\n(?=\w)/', ' ', trim($text));

        }

echo $text2;