成都公司:成都市成华区建设南路160号1层9号
重庆公司:重庆市江北区红旗河沟华创商务大厦18楼
PHP查询字符串技巧
关于一个经验丰富的PHP程序员来说,完成字符串的查询功用曾经不是什么难事了。在这里咱们将会引见一种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 = "http://www.example.com?" .
$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://www.example.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.example.com?city=new+york&id=3456&paid%5Bcurrency%5D=euro&paid%5Bamount%5D=345&paid%5Breceipt%
5D=fgf44545

总而言之,http_build_query()的确可以简化GET进行PHP查询字符串的结构。

