php反斜杠处理函数addslashes()和stripslashes()的使用教程
php 反斜杠处理函数
addslashes():对输入字符串中的某些预定义字符前添加反斜杠,这样处理是为了数据库查询语句等的需要。这些预定义字符是:单引号 (') ,双引号 (") ,反斜杠 (\) ,NULL。
stripslashes():删除由 addslashes() 函数添加的反斜杠。该函数用于清理从数据库或 HTML 表单中取回的数据。(若是连续二个反斜杠,则去掉一个,保留一个;若只有一个反斜杠,就直接去掉。)
默认情况下,PHP 指令 magic_quotes_gpc 为 on,对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。例:
if(get_magic_quotes_gpc()){
code....
}
|
addslashes() 例子:
<?php
$str="Who's John Adams?";
echo$str." This is not safe in a database query.<br />";
echoaddslashes($str) ." This is safe in a database query.";
?>
|
输出结果:
Who's John Adams? This is not safe in a database query.
Who\'s John Adams? This is safe in a database query.
|
stripslashes() 例子:
<?php
echostripslashes("Who\'s John Adams?");
?>
|
输出结果:
Who's John Adams?
|
PHP的curl()在抓取网页的效率方面是比较高的,而且支持多线程,而file_get_contents()效率就要稍低些,当然,使用curl时需要开启下curl扩展。
代码实战
先来看登录部分的代码:
//模拟登录
functionlogin_post($url,$cookie,$post) {
$curl= curl_init();//初始化curl模块
curl_setopt($curl, CURLOPT_URL,$url);//登录提交的地址
curl_setopt($curl, CURLOPT_HEADER, 0);//是否显示头信息
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 0);//是否自动显示返回的信息
curl_setopt($curl, CURLOPT_COOKIEJAR,$cookie);//设置Cookie信息保存在指定的文件中
curl_setopt($curl, CURLOPT_POST, 1);//post方式提交
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post));//要提交的信息
curl_exec($curl);//执行cURL
curl_close($curl);//关闭cURL资源,并且释放系统资源
}
|
函数login_post()首先初始化curl_init(),然后使用curl_setopt()设置相关选项信息,包括要提交的url地址,保存的cookie文件,post的数据(用户名和密码等信息),是否返回信息等等,然后curl_exec执行curl,最后curl_close()释放资源。注意PHP自带的http_build_query()可以将数组转换成相连接的字符串。
接下来如果登录成功后,我们要获取登录成功后的页面信息。
//登录成功后获取数据
functionget_content($url,$cookie) {
$ch= curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEFILE,$cookie);//读取cookie
$rs= curl_exec($ch);//执行cURL抓取页面内容
curl_close($ch);
return$rs;
}
|
函数get_content()中也是先初始化curl,然后设置相关选项,执行curl,释放资源。其中我们设置CURLOPT_RETURNTRANSFER为1即自动返回信息,而CURLOPT_COOKIEFILE可以读取到登录时保存的cookie信息,最后将页面内容返回。
我们的最终目的是要获取到模拟登录后的信息,也就是只有正常登录成功后才能获取的有用信息。接下来我们以登录开源中国的移动版为例,看看如何抓取到登录成功后的信息。
//设置post的数据
$post=array(
'email'=>'oschina账户',
'pwd'=>'oschina密码',
'goto_page'=>'/my',
'error_page'=>'/login',
'save_login'=>'1',
'submit'=>'现在登录'
);
//登录地址 $url = "http://m.oschina.net/action/user/login"; //设置cookie保存路径 $cookie = dirname(__FILE__) . '/cookie_oschina.txt'; //登录后要获取信息的地址 $url2 = "http://m.oschina.net/my"; //模拟登录
login_post($url,$cookie,$post);//获取登录页的信息 $content = get_content($url2, $cookie); //删除cookie文件
@ unlink($cookie);//匹配页面信息 $preg = "/<td class='portrait'>(.*)<\/td>/i";
preg_match_all($preg,$content,$arr);$str=$arr[1][0];//输出内容 echo $str;
|
使用总结
1、初始化curl;
2、使用curl_setopt设置目标url,和其他选项;
3、curl_exec,执行curl;
4、执行后,关闭curl;
5、输出数据。
本次的内容为PHP变量,变量是PHP中一个最基本的东西,下面一聚教程网将帮助大家初步了解PHP变量的相关知识。一、PHP变量是什么
变量是存储信息的容器;
二、语法格式
$变量名称 = 1;
三、PHP 变量规则
1、变量以 $ 符号开头,其后是变量的名称;
2、变量名称必须以字母或下划线开头;
3、变量名称不能以数字开头;
4、变量名称只能包含字母、数字、字符和下划线(A-z、0-9 以及 _)
5、变量名称对大小写敏感($y 与 $Y 是两个不同的变量)
6、Notice
比如你在php中输入以下代码:
<?php
$a=$b=$c=WODE;
$d=$b+$c;
echo $d;
在浏览器中输入“localhost”就会弹出如下图所示的一个错误。
该错误解决办法:
第一步:打开phpstudy中的配置文件
第二步:在文档中用快捷键(Ctrl+F)搜索error_reporting,把它后面的E_ALL | E_STRICT改为E_ALL&`E_NOTICE即可。
第三步:重启phpstudy,刷新浏览器之后这个错误提示就不会显示了。
7、变量可以一起声明,一起表示,如下;
$a=$b=$c=2;
echo $a,$b,$c;
四、PHP 变量举例说明
<?php
$x=5;
$y=6;
$z=$x+$y;
echo $z;
?>
在上述例子中,$x=3; $y=4; $z=$x+$y; 都使用的是变量的语法,上述的变量类似代数,如下。
x=5 y=6 z=x+y
在代数中我们使用字母(比如 x)来保存值(比如 5)。
从上面的表达式 z=x+y,我们能够计算出 z 的值是 11。
在 PHP 中,这三个字母(x,y,z)被称为变量。
五、PHP变量的作用域
PHP 有四种不同的变量作用域:
local
global
static
parameter
Local 和 Global作用域
函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。
函数内部声明的变量拥有 LOCAL 作用域,只能在函数内部进行访问。
下面的例子测试了带有局部和全局作用域的变量:
<?php
$x=5; // 全局变量
function myTest()
{
$y=10;// 局部变量
echo"<p>测试变量在函数内部:<p>";
echo"变量 x 为: $x";
echo"<br>";
echo"变量 y 为: $y";
}
myTest();
echo"<p>测试变量在函数外部:<p>";
echo"变量 x 为: $x";
echo"<br>";
echo"变量 y 为: $y";
?>
在函数内调用函数外定义的全局变量,我们需要在函数中的变量前加上 global 关键字:
<?php
$x=5;
$y=10;
function myTest()
{
global $x,$y;
$y=$x+$y;
}
myTest();
echo $y;// 输出 15
?>
PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中。
index 保存变量的名称。
这个数组可以在函数内部访问,也可以直接用来更新全局变量。
<?php
$x=5;
$y=10;
function myTest()
{
$GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
}
myTest();
echo $y;
?>
Static 作用域
当一个函数完成时,它的所有变量通常都会被删除。然而,有时候您希望某个局部变量不要被删除,可以使用 static关键字
<?php
function myTest()
{
static $x=0;
echo $x;
$x++;
}
myTest();
myTest();
myTest();
?>
参数作用域
参数是通过调用代码将值传递给函数的局部变量。
参数是在参数列表中声明的,作为函数声明的一部分:
<?php
function myTest($x)
{
echo $x;
}
myTest(5);
?>
以上便是PHP变量的全部内容,希望对大家的学习有所帮助。
在上一期PHP的语法结构教程中,我们说到了在浏览器中输入“localhost”就会出现我们编码的那段话,那么本次web服务器的工作原理就来告诉大家原因。localhost的意思:
在计算机网络中,localhost(意为“本地主机”,指“这台计算机”)是给回路网络接口(loopback)的一个标准主机名,相对应的IP地址为127.0.0.1,还不理解的同学请自行百度,在百科里面有详细的介绍。
web服务器的工作原理:
Web可以简单的理解成网络。
基本概念之:协议
两个电脑要传输数据,必须知道对方发来的东西是什么意思。所以他们约定了一些传输的格式,这些约定叫做协议(Protocol)。
基本概念之:HTTP
HTTP:Hypertext Transfer Protocol
中文:超文本传输协议
这个协议,简单理解,就是我们平时上网浏览网页和下载文件时电脑之间传输数据的协议。
基本概念之:服务器与客户端
客户端输入或点击一个网址,就发送一个HTTP的请求给服务器,服务器把网页传送回客户端。
现在比较主流的web服务器主要以“apache”为主。
基本概念之:网页
服务器发送给客户端的就是网页;
我们看到的网页其实是通过HTML语言写出来的。
以上便是web服务器的工作原理的全部内容,希望对大家有所帮助。
相关文章
- 一、下载 mysqlsla [root@localhost tmp]# wget http://hackmysql.com/scripts/mysqlsla-2.03.tar.gz--19:45:45-- http://hackmysql.com/scripts/mysqlsla-2.03.tar.gzResolving hackmysql.com... 64.13.232.157Conn...2015-11-24
- 本次为大家带来的是PS自由变换工具使用教程,详细的为大家说明了PS自由变换工具的快捷键、所在位置、功能以及使用方法,下面请看详细的介绍。 快捷键:Ctrl+T 所...2016-12-15
php反斜杠处理函数addslashes()和stripslashes()的使用教程
这篇文章写了php反斜杠处理函数addslashes()和stripslashes()的使用教程,学习过程中遇到问题的同学快来看看吧! php 反斜杠处理函数 addslashes():对输入字符串中的...2016-12-31- 今天小编在这里就来给美图秀秀的这一款软件的使用者们来说一说美白皮肤功能的使用教程,各位想知道具体信息的使用者们,那么下面就快来跟着小编一起看一看教程吧。 ...2016-09-14
- Composer是PHP中用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer会帮你安装这些依赖的库文件,下面我们一起来看com...2016-11-25
- 小米手机助手怎么用?小米手机目前可是国产手机当中最受欢迎的智能手机了,而小米手机助手也是比较好用的。现在我们就一起来学习一下小米手机助手的使用教程吧。 共...2016-12-15
CSS3 transform属性详解 CSS3 transform属性使用教程
CSS3 transform属性使用教程将为大家全面解析transform属性的作用和使用方法,有兴趣的同学请看下文介绍。 语法: transform:none | matrix(<number>,<number>,<numbe...2017-01-22- 天天模拟器基本上已经兼容各种安卓APK应用。那么你知道如何安装本地APK吗?下面小编就针对这个问题带来详细的教程。 天天模拟器怎么安装本地APK: 1、在你电脑上下载...2016-12-15
php mysql_escape_string与addslashes区别详解
php mysql_escape_string与addslashes区别详解,大家可参考一下本文章。 mysql_real_escape_string() 函数转义 SQL 语句中使用的字符串中的特殊字符。 下列字符受...2016-11-25php stripslashes()和addslashes()用法
首先测试 magic_quotes_gpc 是否为 ON, 如果是,则用 array_map() 递归还原转义的数据,下面看用 stripslashes 还原 addslashes 转义后的数据 的简单实现代码 ...2016-11-25Android开发神器Android Studio使用教程整理帖
以下是本人整理出来的几篇关于Android Studio开发环境使用的教程,希望您通过这几篇文章的学习,能够掌握Android开发神器Android Studio的使用 [图文]Android Studi...2016-09-20- 今天小编在这里就来给美图秀秀的这一款软件的使用者们来说一说魔幻笔的使用教程,各位想知道具体使用教程的,那么下面就快来跟着小编一起看一看教程吧。 给各位美图...2016-09-14
- 今天小编在这里就来给美图秀秀的这一款软件的使用者们来说一说静态场景的使用教程,各位想知道具体使用方法的,那么下面就快来跟着小编一起看一看吧。 给各位美图...2016-09-14
- PHP 日期处理函数 mktime() 使用教程 定义和用法 该mktime ( )函数返回的Unix时间戳的日期。 这时间戳包含的秒数之间的Unix时代( 1970年一月一号00:00:00格林尼治...2016-11-25
- PS椭圆选框工具与矩形选框工具十分相似,但是用起来会比矩形选框工具要更好一些,下面为大家介绍PS椭圆选框工具的快捷键、所在位置和使用方法。 快捷键:M 所在位置:...2016-12-15
- 本文章主要以一个cookie的实现来讲述php对cookie的设置时间,读取以及删除等 function PutCookie($key,$value,$kptime=0,$pa="/") { global $cfg_cookie_encod...2016-11-25
- 本次一聚教程网为大家带来的是一篇关于ps直线工具使用教程的文章,想要掌握ps中的直线工具使用方法就请看下文介绍。 灵活熟练的使用PS各种工具,对待怎么用ps画直...2016-12-15
- 今天小编在这里就来给美图秀秀的这一款软件的使用者们来说下唇彩的使用教程,各位想知道具体使用教程的,那么下面就快来跟着小编一起看一看吧。 给各位美图秀秀软件...2016-09-14
- 今天小编在这里就来给美图秀秀的这一款软件的使用者们来说一说动画场景的使用教程,各位想知道的使用者们,那么下面就快来跟着小编一起看一看教程吧。 给各位美图秀...2016-09-14
- php list 函数使用教程 list ( PHP 4中, PHP 5中) list-指定变量,好象他们是一个数组 描述 void list ( mixed $varname [, mixed $... ] ) 像阵列( ) ,这是不...2016-11-25