如何使用PHP删除每一行字符串中的最后一个字符?

时间:2017-04-08 11:56:22

标签: php string substr

我想从一个单词中删除最后一个字符。 我有一个文件:

hello.
world
welcome.
home..
how.
are.
you
any
thing.
else.

我正在尝试从每行的末尾删除.。 出于某种原因,我的代码仅从上一个世界else中删除了点,但其余部分保留原样。

这是我的代码:

$words = file('words.txt');

foreach($words as $word) 
{
    echo substr($word, 0, -1);
    echo "<br />";
}

有谁知道如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

您可以使用rtrim

  

rtrim - 从字符串末尾删除空格(或其他字符)

$words = file('words.txt', FILE_IGNORE_NEW_LINES);

foreach($words as $word) 
{
   echo rtrim($word, '.');
    echo "<br />";
}

答案 1 :(得分:1)

这是因为每行中的最后一个符号是一个换行符。在执行trim之前substr

$words = file('words.txt');

foreach($words as $word) 
{
    echo substr(trim($word), 0, -1);   // here we go
    echo "<br />";
}

或将second argument添加到file来电:

$words = file('words.txt', FILE_IGNORE_NEW_LINES);

foreach($words as $word) 
{
    echo substr($word, 0, -1);
    echo "<br />";
}

答案 2 :(得分:0)

使用file_get_contentspreg_replace函数的

单行解决方案:

$new_contents = preg_replace("/(\w+)\.*([\r\n]|$)/", "$1</br>", file_get_contents("words.txt"));
echo $new_contents;

输出:

hello

world

welcome

home

how

are

you

any

thing

else