我想读的文本块的最后一行,例如:腓SUBSTR和修剪
250-SIZE 31457280
250-AUTH LOGIN CRAM-MD5
250 OK
这里是我当前的代码 - 它只读取的第一行:
if (substr(trim($res), 0, 3) != "250") {
给予
250-SIZE 31457280
的输出我想要得到的最后
250 OK
(有没有空行在它之间是我的复制粘贴问题)。任何想法?
我想读的文本块的最后一行,例如:腓SUBSTR和修剪
250-SIZE 31457280
250-AUTH LOGIN CRAM-MD5
250 OK
这里是我当前的代码 - 它只读取的第一行:
if (substr(trim($res), 0, 3) != "250") {
给予
250-SIZE 31457280
的输出我想要得到的最后
250 OK
(有没有空行在它之间是我的复制粘贴问题)。任何想法?
我是否正确地认为$res = '250-SIZE 31457280 250-AUTH LOGIN CRAM-MD5 250 OK'
?
如果是,那么下面应该成为你的目的:
$last_set = substr($res, (strlen(trim($res)) - 6), strlen(trim($res)));
这将输出250 OK
。
,以获得最后的“250”从尝试
$string="250-SIZE 31457280 250-AUTH LOGIN CRAM-MD5 250 OK"
echo substr($string, strlen($string)-6, 3)
你可能会爆炸的“\ n”的结果,如果不同,就取数组的最后一个元素
$arr = explode("\n",$res);
$lastone = $arr[count($arr)-1];
替换换行符你的系统,但应该罚款我的经验
如果你想知道250 OK的发生是否在最后,你可以尝试扭转你寻找的字符串和你搜索的字符串n(否则你将不得不打字寻找难以阅读的KO 052)
if (strpos(strrev($res), strrev('250 OK')) === 0) // 0 since it should be at start, but not false
{
... do things
}
你使用哪种api读取数据?您可能对http://docs.php.net/fgets或http://docs.php.net/socket_read(使用PHP_NORMAL_READ)感兴趣,以逐行获取结果。 – VolkerK