我正在疯狂地解决这个问题。
我在PHP中有这个代码:
private function searchpage($data) {
$file = @file_get_contents("./assets/template/search.html");
$content = "";
$pages = "";
foreach ($data as $keys) {
//var_dump($keys); This gives the correct information,I will show the
output later on.
$content = str_replace("[PHOTO]",$keys['photo'], $file);
$content = str_replace("[NAME]",$keys['name'], $content);
$pages .= $content;
}
return $pages;
}
来自$ keys的var_dump看起来像这样
array(1) { [0]=> array(7) { ["_id"]=> string(1) "2" ["_user"]=>
string(1) "1" ["_short"]=> string(4) "test" ["_long"]=> string(9)
"test long" ["name"]=> string(4) "test" ["_dat"]=> string(10) "2017-
08-29" ["photo"]=> string(92) "https://s-media-cache-
"}
如您所见,我使用了正确的名称标签。
STR_REPLACE不起作用。我一直收到这个错误:
Undefined index: name in
/Applications/MAMP/htdocs/test/lib/_layout.php on line 144
Undefined index: photo in /Applications/MAMP/htdocs/test/lib/_layout.php on line 145
奇怪的是:我在不同的HTML页面上做了完全相同的事情,并且它完美地工作。
我不知道这段代码有什么问题。 我确实要求这个功能。我给函数的数据是正确的。它确实打开了正确的HTML页面。唯一不正确的是str_replace。
答案 0 :(得分:1)
您的$keys
表示array
拥有$keys[0]['photo']
个数据。因此,在PHP中,您可能知道,如果您尝试访问数组变量,则还必须指定索引。
因此,它应该是$keys['photo']
而不是$keys[0]['name']
。同样,它应该是$keys['name']
而不是 $content = str_replace("[PHOTO]",$keys['photo'], $file);
$content = str_replace("[NAME]",$keys['name'], $content);
。
请替换
$content = str_replace("[PHOTO]",$keys[0]['photo'], $file);
$content = str_replace("[NAME]",$keys[0]['name'], $content);
与
{{1}}