热烈祝贺台州维博网络的站长论坛隆重上线!(2012-05-28)    热烈庆祝伟大的祖国60周年生日 点击进来我们一起为她祝福吧(2009-09-26)    站长论坛禁止发布广告,一经发现立即删除。谢谢各位合作!.(2009-08-08)    热烈祝贺台州网址导航全面升级,全新版本上线!希望各位一如既往地支持台州网址导航的发展.(2009-03-28)    台州站长论坛恭祝各位新年快乐,牛年行大运!(2009-01-24)    台州Link正式更名为台州网址导航,专业做以台州网址为主的网址导航!(2008-05-23)    热烈祝贺台州Link资讯改名为中国站长资讯!希望在以后日子里得到大家的大力支持和帮助!(2008-04-10)    热烈祝贺台州Link论坛改名为台州站长论坛!希望大家继续支持和鼓励!(2008-04-10)    台州站长论坛原[社会琐碎]版块更名为[生活百科]版块!(2007-09-05)    特此通知:新台州站长论坛的数据信息全部升级成功!">特此通知:新台州站长论坛的数据信息全部升级成功!(2007-09-01)    台州站长论坛对未通过验证的会员进行合理的清除,请您谅解(2007-08-30)    台州网址导航|上网导航诚邀世界各地的网站友情链接和友谊联盟,共同引领网站导航、前进!(2007-08-30)    禁止发广告之类的帖,已发现立即删除!(2007-08-30)    希望各位上传与下载有用资源和最新信息(2007-08-30)    热烈祝贺台州站长论坛全面升级成功,全新上线!(2007-08-30)    
便民网址导航,轻松网上冲浪。
台州维博网络专业开发网站门户平台系统
您当前的位置: 首页 » PHP/Perl编程 » PHP查询字符串技巧分享

PHP查询字符串技巧分享

论坛链接
  • PHP查询字符串技巧分享
  • 发布时间:2012-06-08 12:41:02    浏览数:4121    发布者:superadmin    设置字体【   
对于一个经验丰富的PHP程序员来说,实现字符串的查询功能已经不是什么难事了。在这里我们将会介绍一种PHP查询字符串的捷径技巧,供大家参考。

深入解读PHP插件机制原理

探讨PHP变量解析顺序如何获取提交数据

深入解读PHP运行机制

浅析PHP函数extract()应用技巧

为你总结一些PHP信息函数

RL传递变量对于程序员来说已经是司空见惯的事情,很多人会因此认为本文毫无新意。我们把通过URL传递变量的方式称作GET方式,另外一种是POST方式。这两种方式在PHP中都非常容易实现。举个例子,假设准备进行数据库查询,需要通过GET传递三个变量:city、id和paid.

传统的PHP查询字符串方法是象下面的例子那样构造查询字符串:

/* assume we want to pass this

variables */

$city_name = "new york";

$invoice_id = 3456;

$paid = 1;

$query_string = "city={$city_name}

&id={$invoice_id}&paid={$paid}";

$url .

$query_string;

如今大部分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_build_query($fields, '', "&");

在上面这个PHP查询字符串例子中,数组包含了变量名和变量值。你也可以传入只含变量值的数组,函数会使用你提供的变量名(通过函数的第二个参数传入)加上数组的索引值构造变量名。比如说你要传递六个城市名,可以象下面这么做。

$fields = array('paris',

'new york',

'florence',

'london',

'berlin',

'delhi');

$url .

http_build_query($fields, 'city', "&");

产生的url如下:

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_build_query($fields, '', "&");

它将生成以下URL:

example.com?city=new+york&id=3456&paid%5Bcurrency%5D=euro&paid%5Bamount%5D=345&paid%5Breceipt%

5D=fgf44545

总而言之,http_build_query()确实可以简化GET进行PHP查询字符串的构造。
娱乐休闲专区A 影视预告B 音乐咖啡C 英语阶梯D 生活百科
网页编程专区E AMPZF HTMLG CSSH JSI ASPJ PHPK JSPL MySQLM AJAX
Linux技术区 N 系统管理O 服务器架设P 网络/硬件Q 编程序开发R 内核/嵌入
管理中心专区S 发布网址T 版主议事U 事务处理