Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.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_Line Breaks_Strip - Fatal编程技术网

Php 删除文本前的空行

Php 删除文本前的空行,php,line-breaks,strip,Php,Line Breaks,Strip,有时,我发送给支持票务系统的电子邮件在消息本身之前会出现额外的换行,因此我的消息如下所示: " 你好,我一直在想你是不是……” 我可以用什么来去掉正文前的那一行?由于电子邮件提供商以及他们使用mime格式化电子邮件的方式,这种情况是随机发生的。 我已经尝试了trim功能,但没有成功。(是的,我也尝试了ltrim) 一旦处理,它应该看起来像: “你好,我一直在想你是不是……” 真的很奇怪吗 我们可以在这里使用正则表达式来获取单词字符的开头,但更有趣的是,可以查看字符串中的内容。。。 能否请您发布字

有时,我发送给支持票务系统的电子邮件在消息本身之前会出现额外的换行,因此我的消息如下所示:

"

你好,我一直在想你是不是……”

我可以用什么来去掉正文前的那一行?由于电子邮件提供商以及他们使用mime格式化电子邮件的方式,这种情况是随机发生的。 我已经尝试了
trim
功能,但没有成功。(是的,我也尝试了
ltrim

一旦处理,它应该看起来像:

“你好,我一直在想你是不是……”

真的很奇怪吗

我们可以在这里使用正则表达式来获取单词字符的开头,但更有趣的是,可以查看字符串中的内容。。。 能否请您发布字符串“base64_encode()”的输出,以便我们可以复制并查看

这是正则表达式,它应该适用于您

if (preg_match('/\w.*\w/sm', $subject, $regs)) {
    $result = $regs[0];
}
真的很奇怪吗

我们可以在这里使用正则表达式来获取单词字符的开头,但更有趣的是,可以查看字符串中的内容。。。 能否请您发布字符串“base64_encode()”的输出,以便我们可以复制并查看

这是正则表达式,它应该适用于您

if (preg_match('/\w.*\w/sm', $subject, $regs)) {
    $result = $regs[0];
}

把这些放在一起,如果需要,您可以重命名函数

function removeDeadSpaceBeforeFirstChar($string) {
    $strtemp = $string;

    for($i = 0; $i < strlen($strtemp); $i++) {
        if($strtemp[$i] == " ") {
            $strtemp = substr($strtemp, $i, strlen($strtemp)); 
        }

        if($i > 0 && $strtemp[$i] != " ") {
            return $strtemp;
            break;  
        }
    }
    return false;
}

编辑:我不知道为什么我会发布这样的结果,我在查看代码时突然意识到我没有对substr做任何事情。。上面是修改后的代码

如果需要,可以重命名该函数

function removeDeadSpaceBeforeFirstChar($string) {
    $strtemp = $string;

    for($i = 0; $i < strlen($strtemp); $i++) {
        if($strtemp[$i] == " ") {
            $strtemp = substr($strtemp, $i, strlen($strtemp)); 
        }

        if($i > 0 && $strtemp[$i] != " ") {
            return $strtemp;
            break;  
        }
    }
    return false;
}

编辑:我不知道为什么我会发布这样的结果,我在查看代码时突然意识到我没有对substr做任何事情。。如果要从消息正文的开头删除任意数量的回车符或换行符,以上是修改后的代码:

while (in_array(substr($msgbody, 0, 1), array("\r", "\n")))
    $input = substr($msgbody, 1);
如果您只想捕获偶尔出现在消息开头的特定字节序列(例如,回车符后跟换行符),则可以使用如下方式:

if (substr($msgbody, 0, 2) == "\r\n")
    $input = substr($msgbody, 2);

如果要从消息正文的开头删除任意数量的回车符或换行符:

while (in_array(substr($msgbody, 0, 1), array("\r", "\n")))
    $input = substr($msgbody, 1);
如果您只想捕获偶尔出现在消息开头的特定字节序列(例如,回车符后跟换行符),则可以使用如下方式:

if (substr($msgbody, 0, 2) == "\r\n")
    $input = substr($msgbody, 2);

也可以,但他的代码对我来说不那么混乱。RegEx从来都不是我喜欢的东西。Upvote.我们必须看看字符串中有什么,以及为什么trim()不起作用。。修剪正是您需要的,它将删除任何常见的空白。。。一定有什么不标准的东西,我们需要知道什么,告诉您更好的解决方案;)也可以,但他的代码对我来说不那么混乱。RegEx从来都不是我喜欢的东西。Upvote.我们必须看看字符串中有什么,以及为什么trim()不起作用。。修剪正是您需要的,它将删除任何常见的空白。。。一定有什么不标准的东西,我们需要知道什么,告诉您更好的解决方案;)如果在第一个选项中向数组添加更多字符,则可以从一开始剥离任意类型的数据,包括trim或ltrim中的任何其他字符。如果在第一个选项中向数组添加更多字符,则可以从一开始剥离任意类型的数据,包括任何其他字符正在向上移动trim或ltrim。