【发布时间】:2010-11-05 14:21:08
【问题描述】:
我是 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”。
【问题讨论】:
-
该代码示例看起来确实可以解析。第 9 行或第 10 行似乎缺少某些内容。
-
+1 为什么要投反对票? OP 已尝试自行解决此问题,并且目前正在展示他的工作。
-
您不能将字符串连接到 array_values($glossArray) 的乘积。您将字符串与数组连接起来,因此您会得到不希望的行为。您应该连接“手段”。执行时的字符串 = " 表示 ".$line_of_text[1];早些时候。
标签: php foreach str-replace