在PHP中的单词之前和之后添加文本

时间:2014-12-09 19:46:46

标签: php

我有一些非常大的文件,我需要附加一些文字。 所有文件都以相同的方式构建,每行只有一个单词,但有500.000行和单词。

我测试用linux中的awk做这个,但dident真的让它以我想要的方式工作。 PHP总体来说会更适合我。

我最大的问题是我要追加的文字是"和",""但是当我尝试我的脚本时,它认为它是脚本的一部分。这就是我想要做的。

示例在单词

之前和之后附加文本之前的样子
word1
word2
word3
word4
转换后

我希望它被列为。

   "word1",""
   "word2",""
   "word3",""
   "word4",""
对于我输入的文件中的所有行和单词,

等等。

5 个答案:

答案 0 :(得分:1)

使用fgets()遍历每一行,并确保所有内容都被正确引用/转义:

<?php
$handle = fopen($path_to_file);
$output = '';
while (($line = fgets($handle)) !== false) {
    $output .= '"' . $line . '",""' . "\n";
}
fclose($handle);
file_put_contents($output, $path_to_file);

答案 1 :(得分:0)

$word[]='before';
$word[]= $content;
$word[]='after';
$word = join('',$word);

答案 2 :(得分:0)

我建议你通过linux命令来做到这一点。

添加前缀

sed -e 's/^/"/' file

然后是后缀

sed -e 's/$/",""/' file

答案 3 :(得分:0)

我不完全确定我理解你的问题,但是如果你要问的是如何使用值word1转换包含在变量中的字符串并添加双引号,它要么相当简单,要么使用单引号或转义双引号:

//pre-existing state
$value = "word1";

$value = "\"$value\",\"\"";

希望这会有所帮助。另一种选择是:

$value = '"'.$value.',""';

答案 4 :(得分:0)

根据爆炸情况,请查看以下功能:

<?php
function sandwitch($str){
   $output = "";
   $arr = explode("\n", $str);
   foreach ($arr as $word){
     $output .= '"'.trim($word)."\",\"\""."\n";
   }
 return $output;
}

$words = "word1
word2
word3
word4";

echo sandwitch($words);

结帐本次演示:http://codepad.org/L5J6TCwT