我需要得到字符串的最后一个字符。 假设我有“测试者”作为输入字符串,我希望结果是“s”。PHP中怎么做呢?


当前回答

你可以用很多方法找到最后一个字符,比如substr()和mb_substr()。

如果使用UTF-8等多字节字符编码,请使用mb_substr而不是substr

在这里我可以给你两个例子:

<?php
    echo substr("testers", -1);
    echo mb_substr("testers", -1);
?>

现场演示

其他回答

Siemano,只获取所选目录下的php文件:

$dir    = '/home/zetdoa/ftp/domeny/MY_DOMAIN/projekty/project';
$files = scandir($dir, 1);


foreach($files as $file){
  $n = substr($file, -3);
  if($n == 'php'){
    echo $file.'<br />';
  }
}

我不能留下评论,但关于FastTrack的回答,也要记住,行尾可能只有一个字符。我建议

substr(trim($string), -1)

编辑:我下面的代码被某人编辑了,使它不做我所指示的事情。我已经恢复了我原来的代码,并修改了措辞,使它更清楚。

Trim(或rtrim)将删除所有空白,所以如果你确实需要检查空格、制表符或其他空白,首先手动替换各种行结束符:

$order = array("\r\n", "\n", "\r");
$string = str_replace($order, '', $string);
$lastchar = substr($string, -1);

请记住,如果使用fgets()函数从文本文件中读取作为一行的字符串,则需要使用substr($string, -3, 1),以便获得实际字符,而不是CRLF(回车换行)的一部分。

我不认为提出这个问题的人需要这个,但对我来说,我在从文本文件的字符串中获取最后一个字符时遇到了麻烦,所以我相信其他人也会遇到类似的问题。

substr($string, -1) 
substr("testers", -1); // returns "s"

或者,对于多字节字符串:

mb_substr("multibyte string…", -1); // returns "…"