2012-05-08 95 views
1

我需要找出字符串中最后一个字符的位置是哪个字符空间的位置,并将其从中断开。这是我正在使用的函数,但if语句似乎有问题,但我无法弄清楚什么。 $ text-string中肯定有一个空格。试图切断最后一个字符的空间

假设我有一个字符串“嘿,我的名字是Joh”。那么它必须缩短为“嘿,我的名字是”。

$checkLastChar = false; 
$text = $line[2]; 

while($checkLastChar != true){ 
    for($i = 1; $i <= strlen($text); $i++) 
    { 
     if($text[strlen($tekst) - $i] == " ") { 
       $checkLastChar = true; 
      $text = substr($text, 1, strlen($text) - $i); 
     } 
    } 
} 
+0

那么你要剪切多少个字符? – itachi

+0

这将取决于字符串,有时可以是1,其他时间5. – Veltar

+0

以下是您将如何操作的方法。想想要切割的弦将出现的模式。如果没有确定的模式,就不可能回答你的问题。 – itachi

回答

5
substr($string, 0, strrpos($string, ' ')); 
2

为什么不使用rtrim()

更新

基于澄清a solution like Nate的似乎是更合适的。

+0

嗯,它并不总是最后一个字符,它可以是最后的第三个字符,然后它必须缩短,直到该字符。我会更新这个问题以使其更清楚。 – Veltar

+2

这个答案实际上是你要求的。下次从一开始就清楚。 – itachi

+0

我认为他不只是想要删除空间,我认为他希望在删除空间后出现每个角色。 –

0

你有没有考虑过使用trim()?它从开始和结束剥离空格。

例子:

echo trim(' Hello my name is Matt. '); 
+0

从开始和结束削减。 – itachi

0

试试这个:

<?php 
$str = "dsajhc \tsjdtgsd "; // string with whitespaces 
$str = preg_replace('/(\s+.*)/i', '', $str); // remove everything after whitespace 
?> 

希望它能帮助。

相关问题