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


Add text before and after a word in PHP

我有一些相当大的文件需要附加一些文本。所有文件都以相同的方式构建,每行只有一个单词,但有 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.',""';