PHP:将字符串前置/附加到变量

时间:2016-03-27 16:21:28

标签: php string append

所以我一直试图绕着这个东西绕几个小时, 但似乎没有任何工作像预期的那样。

for($i = 0 ; $i < count($lines); $i++){
  $currentLine = $lines[$i];
  $search  = array('ø', '', 'ï', 'ò');$replace = array('ř', 'ť', 'ď', 'ň');
  $subject = str_replace($search, $replace, $currentLine);
  $finalLine = '"'.$subject.'",';
  file_put_contents($fileName, $finalLine, FILE_APPEND);
};

事情很简单,我正在迭代.dic文件中的行(它只是单词列表,一行一个单词), 对于每个单词,我做了一些替换错误的字符,最后我尝试用双引号包装单词(单引号也不起作用)。

问题,引号未正确添加,而不是"someword",我得到","someword

// $currentLine = someword;
echo '"'.$currentLine.'",';

// returns
","someword

我需要将.dic文件转换为json,以便我可以在我正在制作的javascript游戏中使用它。

有人可以帮忙吗?我找不到任何类似的问题,不是在这里,不是谷歌,没有。我试过单引号,我试着制作整个数组

$newline = Array(
  0 => '"',
  1 => $currentLine,
  2 => '",'
)

然后加入阵列但结果相同,我现在有点绝望,所以如果有人知道我做错了什么,请告诉我。

1 个答案:

答案 0 :(得分:1)

我无法从代码中看出为什么会得到这个结果。但这里有一种可能有帮助的替代方法。

// Set these outside the loop
$search  = array('ø', '', 'ï', 'ò');
$replace = array('ř', 'ť', 'ď', 'ň');

$subjects = array();

foreach ($lines as $line)
{
    $subject = str_replace($search, $replace, $line);
    $subject = trim($subject); // trim if you want to remove extraneous spaces

    if (!empty($subject)) // Presumably you don't want to add empty lines if there are any
    {
        $subjects[] = $subject;     
    }
}

$allwords = implode(',', $subjects);

file_put_contents($fileName, $allwords, FILE_APPEND);

基本上,创建一个单词数组,使用implode()库函数将它们与“,”连接起来,然后将整个批次添加到您的文件中。