在PHP中操作字符串


Manipulating strings in PHP

我有一个包含字符串的变量。例如:

    $message    =   
    'Dear User1,
    Your record submitted has been disapproved by User.
    Remarks: 
    Document No.: 
    Record Title: Test1
    Record URL: http://myapp.dev/records?id=1
    Sincerely,
    Admin
    Dear User1,
    Your record submitted has been disapproved by User.
    Remarks: 
    Document No.: 
    Record Title: Test2
    Record URL: http://myapp.dev/records?id=2
    Sincerely,
    Admin';

我该怎么做才能得到这样的结果?

    Dear User1,
    Your record submitted has been disapproved by User.
    Remarks: 
    Document No.: 
    Record Title: Test1
    Record URL: http://myapp.dev/records?id=1
    Record Title: Test2
    Record URL: http://myapp.dev/records?id=2
    Sincerely,
    Admin

我想我可以通过使用preg_split();来操作字符串?

请提及我错过的或你想知道的事情。任何想法都将不胜感激!

使用nl2br()来获得所需的输出。

echo nl2br($message);

输出

Dear User1,
Your record submitted has been disapproved by User.
Remarks: 
Document No.: 
Record Title: Test1
Record URL: http://myapp.dev/records?id=1
Sincerely,
Admin
Dear User1,
Your record submitted has been disapproved by User.
Remarks: 
Document No.: 
Record Title: Test2
Record URL: http://myapp.dev/records?id=2
Sincerely,
Admin

参见演示

迟到总比什么都没有好。尝试此功能

function manipulate($text){
    $texts = preg_split("/(Remarks:|Sincerely,|Document No.:)/",$text,-1, PREG_SPLIT_DELIM_CAPTURE);
    $str = $texts[0];
    $str .= "Remarks: 'n'nDocument No.:";
    for($x=0;$x<count($texts);$x++){
        if($texts[$x]=='Document No.:'){
            $str .= trim($texts[($x+1)],"'r'n");
        }   
    }
    $str.= "'n'nSincerely,'n'nAdmin";
    return $str;
}

如果您将此作为html使用,请使用类似的nl2br()

nl2br(manipulate($message)); //where $message is your "Dear User1,...."

我认为您需要在html页面中显示。尝试过nl2br()吗?

我认为应该更好地使用heredoc语法,例如:

$message = <<< EOT_MSG
    'Dear User1,
     ...
     ....
EOT_MSG;

我认为你可以使用这样的东西,作为heredoc的替代品。

在这里你可以找到图书馆。https://gist.github.com/fcamp/c4cb828cfb22bbe845cb