gpt4 book ai didi

PHP,从数组读取时str_replace出现问题

转载 作者:可可西里 更新时间:2023-11-01 00:01:23 25 4
gpt4 key购买 nike

我是 php 的新手,我正在尝试编写一个脚本来读取 CSV 文件 (file1.csv) 并将文件中的单词与 html 文件 (file2.html) 中的单词进行比较,如果 file2 中有单词.html 与 file1.csv 中的关键部分匹配 它应该使用匹配的关键值更改 file2.html 内容..

到目前为止我所做的是:

$glossArray = array();
$file_handle = fopen("file1.csv", "r");
while (!feof($file_handle) ) {

$line_of_text = fgetcsv($file_handle, 10000,';');
$glossArray[$line_of_text[0]] = $line_of_text[1];
$counter++;
}
fclose($file_handle);

$file = file_get_contents("file2.html");

foreach($glossArray as $key => $value){
$results = str_replace($key," means ".$value ,$file);
}

echo $results;

我认为当我尝试迭代和更改值时我的问题出现了..因为我看到的只是 file2.html 的内容没有改变

任何帮助将不胜感激

提前谢谢你

纳德

附言我根据您的宝贵建议用新代码编辑了旧代码..现在是这样的..但仍然不起作用。

更新:将 foreach 更改为:

$results = str_replace(array_keys($glossArray), "means ".array_values($glossArray), $file);

解决了这个问题..但是另一个问题出现了:现在每次它替换一个字符串时它都会在它前面添加单词“Array”。

最佳答案

您每次都将整个 $glossArray 传递给 str_replace。每次执行 str_replace 时,您还将传递初始文件内容,因此您最多只能看到一个替换内容。我想你想改成这样:

$results = $file;
foreach($glossArray as $index=>$value)
{
$results = str_replace($index,$value ,$results);

}

由于 str_replace 允许前两个参数使用数组(正如另一个用户提到的),您也可以执行类似这样的操作而不是循环:

$results = str_replace(array_keys($glossArray), array_values($glossArray), $file);

关于PHP,从数组读取时str_replace出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4106742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com