PHP查询字符串技巧分享

开发 后端
这次为大家分享的这种PHP查询字符串的技巧是通过构造GET方式来实现的。在本文介绍的内容中将会对此做一个详细的介绍。

对于一个经验丰富的PHP程序员来说,实现字符串的查询功能已经不是什么难事了。在这里我们将会介绍一种PHP查询字符串的捷径技巧,供大家参考。#t#

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

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

  1. /* assume we want to pass this 
    variables */  
  2. $city_name = "new york";  
  3. $invoice_id = 3456;  
  4. $paid = 1;  
  5. $query_string = "city={$city_name}
    &id={$invoice_id}&paid={$paid}"
    ;  
  6. $url = "http://www.example.com?" . 
    $query_string; 

 

如今大部分PHP开发者都已经习惯于上面这种方法。它在只有三四个变量的时候毫无问题,但是再增加变量的话,代码

将变得难以理解和维护,并容易引入细微的错误。

传递GET变量的***方式是通过PHP5中引入的http_build_query函数,它接收一个数组参数,返回一个格式正确、经过

URL编码的字符串,可以直接拼接在url中。下面是相应的PHP查询字符串例子。

  1. $city_name = "new york";  
  2. $invoice_id = 3456;  
  3. $paid = 1;  
  4. $fields = array('city' => 
    $city_name,  
  5. 'id' => $invoice_id,  
  6. 'paid' => $paid);  
  7. $url = "http://www.example.com?" .
     http_build_query($fields, '', "&"); 

 

在上面这个PHP查询字符串例子中,数组包含了变量名和变量值。你也可以传入只含变量值的数组,函数会使用你提供的变量名(通

过函数的第二个参数传入)加上数组的索引值构造变量名。比如说你要传递六个城市名,可以象下面这么做。

  1. $fields = array('paris',  
  2. 'new york',  
  3. 'florence',  
  4. 'london',  
  5. 'berlin',  
  6. 'delhi');  
  7. $url = "http:/
    /www.example.php?"
     .  
  8. 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查询字符串函数的第三个参数是可选参数,表示变量的分隔符,默认值是‘&’。不过我更喜欢显式的传入这个‘&’分隔符。

此外还可以传入一个复杂的数组:

 

  1. $city_name = "new york";  
  2. $invoice_id = 3456;  
  3. $currency_name = "euro";  
  4. $total = 345;  
  5. $receipt_no = "fgf44545";  
  6.  
  7. $fields = array('city' => 
    $city_name,  
  8. 'id' => $invoice_id,  
  9. 'paid' => array('currency' =>
     $currency_name,  
  10. 'amount' => $total,  
  11. 'receipt' => $receipt_no)   
  12. );  
  13. $url = "http://www.example.php?" .  
  14. 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查询字符串的构造。

责任编辑:曹凯 来源: 网易博客
相关推荐

2009-12-08 16:33:45

PHP unpack函

2010-03-03 16:25:41

Python字符串显示

2011-07-12 16:14:17

2009-11-25 09:13:41

PHP数组转字符串PHP字符串转数组

2009-11-24 09:55:44

PHP字符串函数

2010-01-05 17:43:29

JSON字符串

2009-11-18 12:38:04

PHP字符串函数

2009-12-01 10:38:08

PHP字符串函数

2009-12-09 17:33:22

PHP性能优化

2009-11-30 14:08:42

PHP字符串原理

2009-11-27 10:24:25

PHP字符串操作

2009-09-13 21:52:16

LINQ字符串

2023-12-11 07:33:05

Go语言字符技巧

2020-12-31 07:56:02

JavaScript 字符串技巧

2024-09-06 17:32:55

字符串Python

2009-11-26 16:26:32

PHP字符串mbstr

2009-11-26 13:11:24

PHP字符串

2009-11-18 18:02:19

PHP字符串截取

2009-12-01 09:18:50

PHP分割字符串

2009-11-16 17:59:13

PHP数组转字符串
点赞
收藏

51CTO技术栈公众号