|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
用C语言重新编写,包括可以访问数据库。他将这些程序和一些表单直译器整合起来,称为 PHP/FI。PHP/FI 可以和数据库连接,产生简单的动态网页程序。 关于一个经历丰厚的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查询字符串的机关。
你发奋努力,熟悉了安全方面的问题,然后又设计了一些程序,感觉还不错。 |
|