【问题标题】:PHP: Prepend/append string to a variablePHP:将字符串附加/附加到变量
【发布时间】:2016-07-14 23:11:28
【问题描述】:

所以几个小时以来我一直在努力解决这个问题, 但似乎没有按预期工作。

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 => '",'
)

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

【问题讨论】:

  • 这应该可以,你连接引号之间的行,所以输出也应该在引号之间
  • 对于 json - 有 json_encode 而不是轮子,你在这里发明。
  • 这可能是您的意图,但您确实知道您要附加到`$finalLine`,然后在每次循环迭代后将$finalLine 附加到$fileName 文件?
  • @Chris 哦,我的错,我一定是因为另一次不成功的尝试而把它留在那里了。
  • 您是否因为 .dlc 文件非常大而一次添加一行?

标签: php string append


【解决方案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() 库函数将它们与 "," 连接起来,然后将全部添加到您的文件中。

【讨论】:

  • 是的,可以,但我仍然需要引号中的这些词,因为有一些词,如“key”“default”“break”等等,当我将此文件导入 javascript 时,它打破了这些话。但是谢谢,这仍然比我做的要好。更新:得到它与'“,”',现在我只需要添加陈述和结束报价。谢谢@Greg。
  • 抱歉,我忘记了引号,但很高兴您添加了它们。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-09
  • 1970-01-01
  • 2010-11-20
  • 1970-01-01
  • 2011-10-27
  • 2017-01-09
  • 2014-02-17
相关资源
最近更新 更多