删除每个数组元素开头的空格


Remove whitespace from beginning of each array element

我有如下文本文件(注意开头的空格):

  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 中读取文件并使用正则表达式来细化".."的另一种方法,找到多个空格并仅替换为一个空格。