如何替换前导和结束制表符,但保留中间码格式


How to replace leading and ending tab but preserver middle code format?

我正在制作一个短代码,它返回一个预输出来演示短代码的使用。它工作得很好,但我需要从输出中修剪第一个和最后一个标签。

http://sandbox.onlinephpfunctions.com/code/365e7e96c760c453863ccd83f6e0b2215f64d416

例子

$string ='  <pre>
    <ul>
        <li>Coffee</li>
        <li>Milk</li>
    </ul>
    </pre>
';
$get_pre = str_replace("'t","",$string);
echo $get_pre."'n" ;
echo $string ;

将输出

<pre>
<ul>
<li>Coffee</li>
<li>Milk</li>
</ul>
</pre>
    <pre>
    <ul>
        <li>Coffee</li>
        <li>Milk</li>
    </ul>
    </pre>

但是我需要

<pre>
<ul>
    <li>Coffee</li>
    <li>Milk</li>
</ul>
</pre>

注意,代码可以是任何html,所以我不能针对细节,如get ul或类似的东西。任何帮助都是感激的。谢谢你!

你可以试试:

$str = preg_replace('~^'t~m', '', $str);

m修饰符改变与行首匹配的^锚的含义。

注意:如果你想同时删除每一行的尾随空格,你可以将模式更改为:

$str = preg_replace('~^'t|[^'S'r'n]+$~m', '', $str);

您想要trim

$string=trim($string,"'t");
http://www.php.net/manual/en/function.trim.php