我有一些非常大的文件,我需要附加一些文字。 所有文件都以相同的方式构建,每行只有一个单词,但有500.000行和单词。
我测试用linux中的awk做这个,但dident真的让它以我想要的方式工作。 PHP总体来说会更适合我。
我最大的问题是我要追加的文字是"和",""但是当我尝试我的脚本时,它认为它是脚本的一部分。这就是我想要做的。
示例在单词
之前和之后附加文本之前的样子word1
word2
word3
word4
转换后我希望它被列为。
"word1",""
"word2",""
"word3",""
"word4",""
对于我输入的文件中的所有行和单词,等等。
答案 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