我有如下文本文件(注意开头的空格):
aaaaaaaaaa
abbbbbbbbbbb bbbbbbbbbb
ccccccccccccc ccccccccccc cccccccccc
ddddddddddd ddd dddddd ddddd
eeeeeeeeeee
如何删除每行开头的所有空格?
预期产出:
aaaaaaaaaa
abbbbbbbbbbb bbbbbbbbbb
ccccccccccccc ccccccccccc cccccccccc
ddddddddddd ddd dddddd ddddd
eeeeeeeeeee
我尝试使用ltrim()
,但它似乎不起作用:
$liness = file('file.txt');
$lines = ltrim($liness);
file_put_contents('file.txt', implode($lines));
echo $lines;
可以ltrim()
,但将其与array_map()
一起使用:
$lines = array_map( 'ltrim', $liness );
file_put_contents( 'file.txt', implode($lines) );
而且,不要将echo
用于数组,而应改用print_r()
。或:
foreach( $lines as $line ) echo "$line'n";
- 阅读更多 关于 array_map()
将文件读入数组,修剪每个 arrays 元素并组合成一个字符串,将该字符串放回文件中:
$lines = file('file.txt')
$lines = array_map('ltrim', $lines);
$str = implode($lines);
file_put_contents('file.txt',$str);
//echo nl2br($str) - to see your new file string
//print_r($lines) - to see file lines as array
使用 PHP 修剪函数。
trim(' a d d d ');
//result: 'a d d d', beginning and ending whitespaces removed
还有ltrim()
,rtrim()
功能只能删除左右空格。
你只需要使用trim()
:
$lines = trim($liness);
来自 PHP 手册:
trim — 从字符串的开头和结尾去除空格(或其他字符)
您需要逐行读取文件以进行修剪。
<?php
$file = fopen('yourfile', "r");
$new_file="";
if($file){
while (($line = fgets($file)) !== false) { // read file one line at a time.
$newfile .= ltrim($line); // trim it! trim it! :)
}
fclose($file);
echo $newfile; // !Adios
} else die('Unable to redy the file. :(');
这是给你的小提琴
在 dom 中读取文件并使用正则表达式来细化".."的另一种方法,找到多个空格并仅替换为一个空格。