我正在开发一个php项目。 我有一个关联数组,我用它来制作字典。我还有一个带有文本的字符串,其中包含数组的一些键。我想要做的是生成另一个String,其中第一个文本与第一个文本相同,但关键字替换为数组的值。
在索取之前,我希望用户在数组的每个空值(比较字符串)中写入内容。我必须这样做一个弹出窗口。我需要获取Javascript变量的变量内容并将其放入PHP数组中。我曾试图使用AJAX,但我是一个大人物,我不知道我是否做得很好。
这是我的代码(它不起作用):
<?php
$array["[[red]]"] = "Once upon a time";
$array["[[blue]]"] = "fox";
$array["[[black]]"] = "cat";
$array["[[orange]]"] = "";
$string = "<br /> It has been a long time since [[red]] "
. "[[blue]]. My name is [[blue]] "
. "and my surname is [[black]]. <br />"
. "My age is[[orange]]. <br /> <br />.";
echo "First string': ". $string;
?>
<br /> <br />
<?php
foreach ($array as $key => $value)
{
if ((strstr($string, $key) == true) && ($value == ""))
{
?>
<script>
name = prompt("Insert a correct value: ");
while ((name== "") || !(isNaN(name)) || name== null)
{
window.alert("Wrong insert!");
name= prompt("Insert a correct value: ");
}
var xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","index.php?name="+name,true);
xmlhttp.send();
</script>
<?php
$q = $_REQUEST["name"];
$value = $q;
echo "the value is ".$q;
}
//echo $key." => ".$value;
echo "<br/> <br/>";
}
?>
答案 0 :(得分:1)
要生成一个字符串,其中关键字被数组中的值替换,您可以使用sprintf
函数,如下所示:
$array["red"] = "Once upon a time";
$array["blue"] = "fox";
$array["black"] = "cat";
$array["orange"] = "";
$sentence = "<br />It has been a long time since %s %s. My name is %s and my surname is %s.<br /> My age is %s. <br /><br />.";
echo "First string" . sprintf($sentence, $array["red"], $array["blue"], $array["blue"], $array["black"], $array["orange"]);
至于你问题的第二部分,你想要捕获用户的输入以填充数组中的空条目......好吧,你需要先用{{1}更正你的nome
js变量}}。
然后,您需要在AJAX调用中提交密钥和用户提供的值,以便了解要更新的关联数组中的哪个条目。在实例化name
之前捕获查询参数会更容易。
此外,即使$array
中存在true
,strstr
也不会返回needle
。看看doc。
所以可能是这样的:
haystack