php - ajax调用的php脚本与apache中的工作方式不同
问题描述
我刚刚遇到了一个问题,我试图将一些值分配给具有数字索引的数组。这适用于我的 apache 网站上的 php 页面,但相同的代码在同一网站中由 ajax 调用的 php 脚本中无法正常工作。仅当我为数组分配一个字母以将其从索引数组转换为关联数组时,它才有效。谁能解释为什么?
这是我的代码示例:
$search = "well,drill rig";
$search1 = array_filter(explode(' ',str_replace(',',' ',$search)));
$val = array();
foreach ($search1 as $key => $value) {
$val[$key] = $value;
$q_search.="$val[$key];
}
echo $q_search;
在常规网页上,这将输出“welldrillrig”。如果由 ajax 调用,则返回“wdr”。出于某种原因,它只是将 $value 的第一个字母分配给$val
数组。我可以$value
通过发送它来检查error_log()
它是完整的字符串(即“well”),但$val[0]
它只是“w”。起初我认为它$val
像字符串一样处理并返回偏移量,但如果 I print_r($val)
,我得到[0]=>"w"
.
如果我更改代码以创建$val
一个关联数组,每个键都有一个字母:
$keystring = 'abc';
$search = "well,drill rig";
$search1 = array_filter(explode(' ',str_replace(',',' ',$search)));
$val = array();
foreach ($search1 as $key => $value) {
$keyval = $keystring[$key];
$val["$keyval"] = $value;
$q_search.="$val["$keyval"];
}
然后它就像我期望的那样工作。 $q_search
当使用 ajax 调用时,将等于“welldrillrig”,就像我在 apache 中运行它时一样。
我错过了什么吗?
解决方案
推荐阅读
- python-3.x - 如果导入,Python 多进程生成进程会卡住
- list - Flutter - 如何放置列表
进入共享偏好? - java - java不能连接到字符串的结尾
- java - 流已经被操作或关闭,即使在使用供应商之后
- php - laravel paginate 1000 last Record with relationship
- shell - 在shell脚本中为变量分配最新的文件名
- redirect - 为什么我在尝试使用 HAProxy 重定向对安装在 CentOS Docker 容器中的 CRC 的调用时获得“禁止”状态?
- python - 如何在 django 框架中创建一个 html 文件?
- batch-file - 使用 cmd 进行复杂的复制图像
- python - 从 4D 列表中删除重复项