对于一个经验丰富的PHP程序员来说,实现字符串的查询功能已经不是什么难事了。在这里我们将会介绍一种PHP查询字符串的捷径技巧,供大家参考。#t#
创新互联建站专注为客户提供全方位的互联网综合服务,包含不限于成都网站设计、成都做网站、大同网络推广、微信小程序开发、大同网络营销、大同企业策划、大同品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联建站为所有大学生创业者提供大同建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com
RL传递变量对于程序员来说已经是司空见惯的事情,很多人会因此认为本文毫无新意。我们把通过URL传递变量的方式称作GET方式,另外一种是POST方式。这两种方式在PHP中都非常容易实现。举个例子,假设准备进行数据库查询,需要通过GET传递三个变量:city、id和paid。
传统的PHP查询字符串方法是象下面的例子那样构造查询字符串:
如今大部分PHP开发者都已经习惯于上面这种方法。它在只有三四个变量的时候毫无问题,但是再增加变量的话,代码
将变得难以理解和维护,并容易引入细微的错误。
传递GET变量的***方式是通过PHP5中引入的http_build_query函数,它接收一个数组参数,返回一个格式正确、经过
URL编码的字符串,可以直接拼接在url中。下面是相应的PHP查询字符串例子。
- $city_name = "new york";
- $invoice_id = 3456;
- $paid = 1;
- $fields = array('city' =>
$city_name,- 'id' => $invoice_id,
- 'paid' => $paid);
- $url = "http://www.cdxwcx.com?" .
http_build_query($fields, '', "&");
在上面这个PHP查询字符串例子中,数组包含了变量名和变量值。你也可以传入只含变量值的数组,函数会使用你提供的变量名(通
过函数的第二个参数传入)加上数组的索引值构造变量名。比如说你要传递六个城市名,可以象下面这么做。
- $fields = array('paris',
- 'new york',
- 'florence',
- 'london',
- 'berlin',
- 'delhi');
- $url = "http:/
/www.example.php?" .- http_build_query($fields,
'city', "&");
产生的url如下:
http://www.example.php/?city0=paris&city1=new+york&city2=florence&city3=london&city4=berlin&city5=delhi
(译注:如果数组元素的key不是默认的整数,那么key就作为对应值的变量名,而象上面例子,数组的key是默认的整数,那么
变量名是函数第二个参数加上元素的key,所以***个变量名就是city0)
PHP查询字符串函数的第三个参数是可选参数,表示变量的分隔符,默认值是‘&’。不过我更喜欢显式的传入这个‘&’分隔符。
此外还可以传入一个复杂的数组:
- $city_name = "new york";
- $invoice_id = 3456;
- $currency_name = "euro";
- $total = 345;
- $receipt_no = "fgf44545";
- $fields = array('city' =>
$city_name,- 'id' => $invoice_id,
- 'paid' => array('currency' =>
$currency_name,- 'amount' => $total,
- 'receipt' => $receipt_no)
- );
- $url = "http://www.example.php?" .
- http_build_query($fields, '', "&");
它将生成以下URL:
http://www.cdxwcx.com?city=new+york&id=3456&paid%5Bcurrency%5D=euro&paid%5Bamount%5D=345&paid%5Breceipt%
5D=fgf44545
总而言之,http_build_query()确实可以简化GET进行PHP查询字符串的构造。
网站题目:PHP查询字符串技巧分享
当前网址:http://www.csdahua.cn/qtweb/news6/304456.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网