使用substr()从字符串中删除最后一个字符不起作用


Removing the last character from a string using substr() is not working

我试图从GMAIL原始电子邮件视图中获得HTML模板,问题是GMAIL在每行末尾添加了一个=字符。

我使用foreach循环来遍历这些行并删除"="字符,但它仍然不工作。

我还有一个if语句来验证字符的存在。

示例GMAIL原始视图行:

    body[dir=3Drtl] .directional_text_wrapper { direction: rtl; unicode-bid=
i: embed; }
  </style>
</head>
<body lang=3D"en-us" style=3D"width:100%!important;margin:0;padding:0">
  <div style=3D"padding:10px;line-height:18px;font-family:&#39;Lucida Grand=
e&#39;,Verdana,Arial,sans-serif;font-size:12px;color:#444444">
<标题>代码:
<?php
$original_email=file("original.html");
foreach ($original_email as   $line) 
 {
    $sbstr=substr($line,-2,1);
    if( $sbstr == "="){
        echo $substr;
    }
 }

?>

更新

我试过使用rtrim()功能,没有运气。

更新后的代码:

<?php
    $original_email=file("original.html");
    foreach ($original_email as   $line) 
     {
        /*
        $sbstr=substr($line,-2,1);
        if( $sbstr == "="){
            echo $substr;
        }
        */
        rtrim($line,"=");
     }

    ?>

您可以使用PHP函数rtrim

rtrim -从字符串

的末尾去掉空白(或其他字符)

使用以下语法删除

行末尾的=
$line = rtrim($line, "=");

using rtim function

rtrim ( $sbstr,"=")

尝试先使用trim来修剪字符串中的空白,然后再使用rtrim '='字符。

$line = trim($line);
$line = rtrim($line,'=');

我已经删除了添加在每行中的"3D",并制作了一个循环,切断行尾并检查它是否等于"=",如果是,它使用substr删除它。

<?php
$original_email=file("original.html");
foreach ($original_email as   $line) 
 {
$line=str_replace("3D","",$line);
if($sbstr=substr($line,-2,1) == "=")
{
$ln=substr($line,0,strlen($line)-2);
    echo htmlentities($ln)."<br>";
}
}

?>