在文本文件php中为每一行添加一个字符

时间:2013-12-02 15:30:02

标签: php

我是新手,我有一个文本文件..文本文件的内容如下......

text1     text4     text7
text2     text5     text8
text3     text6     text9

我想要做的是使用--->>>将此php字符添加到文本文件的前两个垂直列中的每一行...我该怎么做....任何帮助将不胜感激...提前感谢... :) ..我已经尝试了以下代码...

<?php
$fileContents = file_get_contents('mytext.txt');
$fixedFileContents = "--->>>";
file_put_contents($fixedFileContents, 'mytext.txt');
?>

输出应该类似于

--->>>text1     --->>>text4     text7
--->>>text2     --->>>text5     text8
--->>>text3     --->>>text6     text9

3 个答案:

答案 0 :(得分:2)

我不完全确定输出应该是什么,但这样的事情应该有效:

$lines = file('mytext.txt'); 
$new = '';

if (is_array($lines)) {
    foreach($lines as $line) { 
        $new .= "--->>>" . $line;
    } 
}

file_put_contents('mytext.txt', $new);

应该给你:

--->>>text1     text4     text7
--->>>text2     text5     text8
--->>>text3     text6     text9

答案 1 :(得分:1)

如果我正确理解您的问题,您可以使用preg_replace和正则表达式:

$fileContents = preg_replace('/^(\w+\s+)(\w+\s+)/m', '--->>>$1--->>>$2', $fileContents);

示例

<?php
    $fileContents = <<<TEXT
text1     text4     text7
text2     text5     text8
text3     text6     text9
TEXT;
    $fileContents = preg_replace('/^(\w+\s+)(\w+\s+)/m', '--->>>$1--->>>$2', $fileContents);
    echo $fileContents;
?>

<强>输出

--->>>text1     --->>>text4     text7
--->>>text2     --->>>text5     text8
--->>>text3     --->>>text6     text9

DEMO

答案 2 :(得分:1)

Marc B所说的会起作用。

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

$contents = null;

foreach($file as $line) {

   $line = preg_replace('/\s+/', ' --->>> ', $line);
   $contents .= '--->>> ' . $line . "\r\n";

}

file_put_contents('file.txt', $contents);

如果您知道空格,制表符或空格的确切数量,也可以使用str_replace删除空格。

这应输出类似于以下内容的内容:

--->>> test1   --->>> test4   --->>> test7
--->>> test2   --->>> test5   --->>> test8

编辑:哎呀,刚注意到我刚发布的确切内容!哈! 编辑2:添加替换空格以添加---&gt;&gt;&gt;值之间。