php字符串函数在最后一次出现字符之前获取子字符串

时间:2011-05-09 15:56:31

标签: php

$string = "Hello World Again".
echo strrchr($string , ' '); // Gets ' Again'

现在我想从$string [最后一次出现空格之前的子字符串']获取“Hello World”。我怎么得到它?

10 个答案:

答案 0 :(得分:45)

$string = "Hello World Again";
echo substr($string, 0, strrpos( $string, ' ') ); //Hello World

如果找不到该字符,则不会回显任何内容

答案 1 :(得分:13)

这是一种廉价的方法,但你可以拆分,弹出,然后加入以完成它:

$string = 'Hello World Again';
$string = explode(' ', $string);
array_pop($string);
$string = implode(' ', $string);

答案 2 :(得分:6)

一种(好的和冷静的)方式:

$string = "Hello World Again";
$t1=explode(' ',$string);
array_pop($t1);
$t2=implode(' ',$t1);
print_r($t2);

其他(更棘手的)方式:

$result = preg_replace('~\s+\S+$~', '', $string);

$result = implode(" ", array_slice(str_word_count($string, 1), 0, -1));

答案 3 :(得分:3)

strripos - 查找字符串中最后一个不区分大小写的子字符串的位置

 $string = "hello world again";
 echo substr($string, 0, strripos($string, ' ')); // Hello world

答案 4 :(得分:1)

$myString = "Hello World Again";
echo substr($myString, 0, strrpos($myString, " "));

答案 5 :(得分:1)

正确的实施应该是:

$string = "Hello World Again";
$pos = strrpos( $string, ' ');
if ($pos !== false) {
    echo substr($string, 0, $pos ); //Hello World
}

否则,如果找不到该字符,则不会打印任何内容。见以下案例:

$string = "Hello World Again";
//prints nothing as : is not found and strrpos returns false.
echo substr($string, 0, strrpos( $string, ':') );

答案 6 :(得分:0)

您可以使用strrpos的组合,它获取字符串中给定字符串的最后一个实例的位置,并使用substr来返回该值。

答案 7 :(得分:0)

你可以使用:

$string = "Hello World Again";
echo preg_replace('# [^ ]*$', '', $string);

无论字符是否出现在字符串中,这都将起作用。如果最后一个字符是空格,它也会起作用。

答案 8 :(得分:0)

function cutTo($string, $symbol) {
    return substr($string, 0, strpos($string, $symbol));
}

答案 9 :(得分:0)

<?php
   $str = "Hello World!";
   echo $str . "<br>";
   echo chop($str,"World!");
   // output - Hello 

?>