PHP str_replace数组存储在文本文件中

时间:2015-04-09 17:03:42

标签: php arrays str-replace

我尝试使用PHP的str_replace替换基于两个数组的字符串,这两个数组都存储在外部文本文件中。

//All codes listed in a txt file
$codes = file('aircodes.txt');

//Full name replacements
$full  = file('fullcodes.txt');

$string = "BUF YUL YYZ";
$newstring = str_replace($codes, $full, $string);
echo $newstring;

我的aircodes.txt文件的内容:

BUF
YUL
YYZ

我的fullcodes.txt文件的内容:

Buffalo
Montreal
Toronto

尽管如此,我的代码都没有被城市名称取代。如果我从每个文本文件中删除除了一行之外的所有内容,它就会起作用。

1 个答案:

答案 0 :(得分:4)

这是因为在最后一个元素中,每个元素中仍然有一个新行符号(在字符串中表示它不会找到:BUF\nYUL\n,但是{{1} })。所以只需附加一个flag来忽略这些字符,如下所示:

YYZ

如果您执行$codes = file('aircodes.txt', FILE_IGNORE_NEW_LINES); //... ^^^^^^^^^^^^^^^^^^^^^ See here $full = file('fullcodes.txt', FILE_IGNORE_NEW_LINES);

,您还可以看到这些字符
var_dump($codes)