很多站长朋友们都不太清楚php解析get参数,今天小编就来给大家整理php解析get参数,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 PHP伪静态.htaccess文件中GET参数获取问题 2、 PHP, get传值,参数为类似于http地址如何解析? 3、 通过get提交参数返回json数据怎么用php解析 4、 跪求PHP的__get方法的参数 5、 php中get和request的区别 6、 php 接收GET参数进行查询 PHP伪静态.htaccess文件中GET参数获取问题RewriteRule ^action-(\w+).html?(.*?)$ index.php?a=$1$2 [QSA,L]
正则规则裏第一个分组是a的值,後面的是query string的值。这是一个参考,具体可能要根据实际需求做更好的正则匹配。
PHP, get传值,参数为类似于http地址如何解析?可以使用urldecode进行解码,urldecode使用方法如下:
urldecode — 解码已编码的 URL 字符串
string urldecode ( string $str )
解码给出的已编码字符串中的任何 %##。 加号('+')被解码成一个空格字符。
str:要解码的字符串。
返回值:
返回解码后的字符串。
通过get提交参数返回json数据怎么用php解析将返回的json数据。用json_decode()出来成对象,然后在进行你想要的操作。
$url="{$q}";
print_r(json_decode(file_get_conent($url)));
跪求PHP的__get方法的参数__get的作用更多的会出现在比较抽象的需求中:当对象属性不存在时,以属性名为参数调用__get。
举例来说:
<?
class a{
function __get($name){
if($name == 'db') {
$this->db = mysql_connect('localhost', 'root', 'root');
mysql_select_db('test');
} else if($name == 'other1') {
// do something
} else if($name == 'other2') {
// do something
}
return $this->$name;
}
function get_data() {
// $this->db 这一句相当于调用$this->__get('db')
$query = mysql_query("select * from a", $this->db);
while($row = mysql_fetch_assoc($query)) {
print_r($row);
}
}
}
$b = new a();
$b->get_data();
?>
--------------------------
返回的值就相当于是调用$this->__get('db'); 的返回值,在上面的例子里面就是一个mysql连接句柄。
--------------------------
上面的例子的作用:
仅当需要连接mysql的时候才会产生连接,如果仅仅是静态页面,就不需要建立连接来浪费宝贵的mysql连接数。类似的,在传统面向过程的结构里,“必须”初始化的东西,都可以放在__get里面去“按需初始化”。比如smarty类,分页类 等等等等。
在MVC架构里面也经常会用到类似于:
// 调用$this->__get('somemodel')
$this->somemodel->dosomething1();
//因为在__get里面已经给'somemodel'赋值,所以此处不重复调用__get
$this->somemodel->dosomething2();
php中get和request的区别PHP中有$_REQUEST与$_POST、$_GET用于接受表单数据。
一、$_REQUEST与$_POST、$_GET的区别和特点
$_REQUEST[]具用$_POST[] $_GET[]的功能,但是$_REQUEST[]比较慢。通过POST和GET方法提交的所有数据都可以通过$_REQUEST数组获得。
二、$_POST、$_GET的区别和特点
1. GET是从服务器上获取数据,POST是向服务器传送数据。
2. GET是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。POST是通过HTTP POST机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
3. 对于GET方式提交表单数据,服务器端用$_GET[‘name’]获取变量的值,对于POST方式提交表单数据,服务器端用$_POST[‘name’]获取提交的数据,当然,两者都可以通过$_REQUEST[‘name’]获得表单数据。对于REQUEST方式提交表单数据,服务器端用$_REQUEST[‘name’]获取变量的值,但这种方式很少用。
4. GET传送的数据量较小,不能大于2KB。POST传送的数据量较大,一般被默认为不受限制。但理论上,一般认为不能超过100KB。
5. GET安全性非常低,POST安全性较高。
6. GET表单值可以通过_GET获取;但通过action的url设置的参数总是获取不到的,<form method="get" action="a.asp?b=b">跟<form method="get"action="a.asp">是一样的,也就是说,在这种情况下,GET方式会忽略action页面后边带的参数列表。POST表单值可以通过_POST获取;但通过action的url参数设置的参数则可以不能通过_POST获取到。action=test.php?id=1这种就是GET方式传值,可以用$_REQUEST和$_GET接受传值,但不能用POST方式获取到值,即使表单是POST方式提交。所在,在提交表单时,如果action中同时有参数,最好只能通过POST表单方式,对于表单内数据,直接通过POST获取,对于action中参数,童工GET获取。
在做数据查询时,建议用GET方式,而在做数据添加、修改或删除时,建议用POST方式。
request是先读取 get再读post 的, 同时存在, 即覆盖掉前面的变量。
经典实例:
<?php
echo "get\n";
print_r($_GET);
echo "post\n";
print_r($_POST);
echo "request\n";
print_r($_REQUEST);
?>
<form method=post action='?a=1b=2'>
<input type=text name=a value='a'>
<input type=text name=b value='b'>
<input type=submit value=test>
</form>
输出结果:
get:
Array
(
[a] => 1
[b] => 2
)
post:
Array
(
[a] => a
[b] => b
)
request:
Array
(
[a] => a
[b] => b
)
其实,在php配置文件php.ini中有一个设置项:variables_order = "GPCS" ,GPCS分别是GET,POST,Cookie,Server的首字母缩写,variables_order = "GPCS"含义是php文件中变量的解析顺序是GET,POST,Cookie和Server。
php 接收GET参数进行查询首先要对GET传过来的值进行验证,比如基本的数值验证,判断是否为数字等;还有做为空判断,如果是空就unset 掉,否则会影响你最终的结果。
其次,GET不要直接引用,验证后赋值给一个变量后再进行操作。
其他方面就没什么问题了吧。
关于php解析get参数的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php解析get参数 php中get的详细内容...