我有一些相当大的文件需要附加一些文本。所有文件都以相同的方式构建,每行只有一个单词,但有 500.000 行和单词。
我测试了在 Linux 中使用 awk 来做到这一点,但确实让它按照我想要的方式工作。总的来说,PHP更适合我。
我最大的问题是我想附加的文本是"和",",但是当我尝试我的脚本时,它认为它是脚本的一部分。这就是我想做的。
示例在单词前后附加文本之前
的外观word1
word2
word3
word4
转换后,我希望它被列为。
"word1",""
"word2",""
"word3",""
"word4",""
对于我输入的文件中的所有行和单词,依此类推。
根据爆炸,查看以下函数:
<?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
使用 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);
$word[]='before';
$word[]= $content;
$word[]='after';
$word = join('',$word);
我建议你通过linux命令来做到这一点。
添加前缀
sed -e 's/^/"/' file
然后后缀
sed -e 's/$/",""/' file
我不完全确定我是否理解您的问题,但是如果您询问如何转换值为word1的变量中包含的字符串并添加双引号,这相当简单,要么使用单引号,要么转义双引号:
//pre-existing state
$value = "word1";
$value = "'"$value'",'"'"";
希望这有帮助。另一种选择是:
$value = '"'.$value.',""';