我想从一个单词中删除最后一个字符。 我有一个文件:
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 />";
}
有谁知道如何解决这个问题?
答案 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_contents
和preg_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