php 用get方式传递中文参数,无法用strpos判断中文字处于第几个

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 用get方式传递中文参数,无法用strpos判断中文字处于第几个相关的知识,希望对你有一定的参考价值。

$a=$_GET['k'];
如果$a是用get方式获取的,比如获取的值为“中国于美国”
然后用strpos进行判断,判断“于”处于第几个,结果无法获取处于第几个
但是 ,如果直接用$a="中国于美国";这样赋值的话,就可以获取
试过urldecode了
如果get传递过来的参数是被浏览器自动urlencode的,那就有这个问题
如果传递的时候没有urlencode 那还是正常的

尝试使用urldecode解码,中文字符在地址栏传递时会被解析为十六进制字符 参考技术A uft-8编码的吧?那get中文参数的话就必须urldecode一下在传递了。 参考技术B iconv转一下编码 或者 mb_strpos 参考技术C 判断编码

php网站一开始还运行正常,突然不知道怎么回事url传递过来的参数无法通过GET获取了,怎么网站瘫痪了。

本地用的是APMServ5.2.6,运行良好,然后上传到服务器一开始也没啥错误,后来页面都没法获取到参数,点击都错误。如index.php?id=1。程序里直接通过$id就能得到值,后面不知道什么原因,也没人动服务器就不行了。后台重新加了get去获取id就行了。但是后台还是不行,总不能所有的参数都要重新加一遍吧。我网站用的是keke威客1.2后台开发的。非常苦恼,但是服务器上安装个APMServ5.2.6又能正常运行,目前服务器上的版本是PHP版本 : 5.2.13,服务器软件:Microsoft-IIS/6.0MySQL 支持:[√] /版本:5.0.81-community-nt。

参考技术A 服务器上更改了php配置文件,或者服务器升级了php版本
你如果不能更改服务器配置,那就只有在每个页面上声明get变量;
而且就算你能更改php.ini 也不建议开启,而是要在开发中声明变量
参考技术B 一般是使用$_GET['id'],取ID的值 url 一般的是 ?id=值 如果这样无法敢得参数,就说明了你的程序有URL路由 把参数以另一种的型式来传递,比如/id/值 , id-值,..... 一般这样的程序都有设置开启与关闭,你可以在配置表中关闭 参考技术C 要开启全局,但建议不要用全局,不安全 参考技术D 你环境可能出问题了!

以上是关于php 用get方式传递中文参数,无法用strpos判断中文字处于第几个的主要内容,如果未能解决你的问题,请参考以下文章

php href 传递参数问题

php网站一开始还运行正常,突然不知道怎么回事url传递过来的参数无法通过GET获取了,怎么网站瘫痪了。

php curl get 参数

php

为啥跳转 的php文件获得不到传的参数

浏览器怎么用get方式传递json数组