使用 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 — Strip whitespace (or other characters) from the end of a string

使用以下语法删除行尾的=

$line = rtrim($line, "=");

使用 rtim 函数

rtrim ( $sbstr,"=")

我已经删除了每行中添加的“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>";
}
}


?>

首先尝试 trim 您的字符串使用 trim 来获取空格,然后使用 rtrim '=' 字符。

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