本文实例呈报了PHP中FTP相关函数。分享给大家供大家参考,具体如下:

文章中有不许确的恐怕说辞不清之处,麻烦大家提出了~~~与PHP字符串转义相关的安插和函数如下:
1.magic_quotes_runtime 2.magic_quotes_gpc 3.addslashes
4.mysql_escape_string和stripcslashes 和html_entity_decode()
7.htmlspecialchars()和htmlspecialchars_decode()
当magic_quotes_runtime展开时,php的绝大好多函数自动的给从外表引进的多寡中的溢出字符加上反斜线。
能够运用set_magic_quotes_runtime()与get_magic_quotes_runtime()‍设置和检验其情景。
注意:PHP5.3.0以上的版本已将那多少个函数放任,也就说在PHP5.3.0或上述版本时该接纳已经为关闭了。
‍ magic_quotes_gpc设置是还是不是自动为GPC传来的多寡中的有个别字符进行转义,
能够应用get_magic_quotes_gpc()检验其设置。
如果未有展开那项设置,能够使用addslashes()函数加多给字符串进行转义
addslashes()‍ 在钦赐的约定义字符前增加反斜杠。 预约义字符饱含单引号与
NUL。 以上是W3SCHOOL.COM.CN给出的表达我一贯觉的不是很准确因为在magic_quotes_sybase=on时它将单引号
在magic_quotes_sybase=off时才将单引号
stripslashes‍恰好相反,它的意义是剔除转义的法力。
mysql_escape_string() 转义 SQL语句中接收的字符串中的特殊字符。‍
这里的不一致常常包涵、 addcslashes()‍以C
语言风格使用反斜线转义字符串中的字符,这些函数超级少人去用,可是应当小心的是:当接受对字符
0,a,b,f,n,r,t 和 v 举行转义时,它们将被调换来
\0,\a,\b,\f,\n,\r,\t 和 \v。在 PHP 中,只有 \0和
\t是预订义的转义种类, 而在 C
语言中,上述的享有转变后的字符都以预订义的转义种类。同理stripcslashes()的效率就是去除其转义。
htmlentities() 把字符转变为 HTML
实体。(什么是HTML实体?本人GOOGLE吧~~卡塔 尔(英语:State of Qatar)具体参数请见这里,其逆反的函数html_entity_decode() -‍把 HTML
实体转变为字符。 htmlspecialchars()函数把生龙活虎部分预约义的字符转变为 HTML
实体。 这一个预订义的字符是: & 成为 ” ‘ 成为 < > 成为 >
‍详细参数请见这里,其逆反函数是htmlspecialchars_decode() 把生机勃勃部分预订义的
HTML 实体调换为字符。 一点谈得来的体味:
>>多次的单引号转义只怕引起数据库的平安难题 >>
不提议利用mysql_escape_string
来开展转义,提议在得到顾客输入时候举行转义 >>
由于set_magic_quotes_runtime()‍在PHP5.3.0和后来版本已被撇下了,
所以早前的版本建议统后生可畏安插关闭: 复制代码
代码如下: if < ‘5.3.0’) { set_magic_quotes_runtime; } ‍>>
不能透过函数来定义magic_quotes_gpc,因而提出在服务器上统生龙活虎开启,写程序的时候理应在来判定下,制止没张开GPC引起安全主题素材通过addslashes对GPC实行时候转义时,应小心当客商提交数组数据时对键值和值的过滤
复制代码 代码如下:
if(!get_magic_quotes_gpc { $_GET = daddslashes; $_POST =
daddslashes; $_COOKIE = daddslashes; $_FILES = daddslashes; } function
daddslashes { if { foreach($string as $key => $val) { unset;
$string[addslashes] = daddslashes; } } else { $string = addslashes; }
return $string; } ‍>>
利用在顾客输入或输出时候转义HTML实体以堤防XSS漏洞的爆发!前几日超出三个管理文件特殊字符的事情,再次注意到这么些主题材料,在php中:
*以单引号为定界符的php字符串,扶助几个转义\’和\\
*以双引号为定界符的php字符串,帮助下列转义: \n换行 \r回车
\t水平制表符 \\反斜线 \$韩元符号 \”双引号
\[0-7]{1,3}此正则表明式连串匹配三个用八进制符号表示的字符
\x[0-9A-Fa-f]{1,2}此正则表明式类别相称二个用十一进制符号表示的字符
举多少个例证: 叁个暗含\0特殊字符的事例: $str=”ffff\0ffff”; echo; echo;
for;$i++)echo; echo; 输出结果: ———————- 9
10210210210二零一零2102102102 替换特殊字符的例子 $str=”ffff\0ffff”;
$str=str_replace; //或者用$str=str_replace; //或者用$str=str_replace;
echo; echo; for;$i++)echo; echo; 输出结果: ———————- 8
102102102102102102102102 八进制ascii码例子:
//注意,相符正则\[0-7]{1,3}的字符串,表示二个八进制的ascii码。
$str=”\0\01\02\3\7\10\011\08\8″;//这里的\8不相符供给,被改正为”\\8″
echo; echo; for;$i++)echo; echo; 输出结果: ———————- 11
01237890569256 十九进制ascii码例子:
$str=”\x0\x1\x2\x3\x7\x8\x9\x10\x11\xff”; echo; echo;
for;$i++)echo; echo; 输出结果: ———————- 10 01237891617255

PHP简洁函数 主旨:类菌体PHP简洁函数 简述:PHP老妪能解函数语法
相符人群:对开源社区感兴趣,对php感兴趣,有好几日子明白下php
备注:希望大家抛砖,仍蛋,呵呵 1、与mysql相关 mysql_connect
建设构造二个与MySQL服务器的连年 语法 复制代码
代码如下: resource mysql_connect(string server[,string
usingname[,string password[, bool new_link[,int
client_flags]]]]) eg: $DB_HOST =”localhost”; $DB_LOGIN =”root”;
$DB_PASSWORD =” 123456”;
$conn=mysql_connect($DB_HOST,$DB_LOGIN,$DB_PASSWORD);
mysql_data_seek 将里面查询指针移动至查询行上 语法 复制代码 代码如下: bool
mysql_data_seek(resource result_indetifier,int row_number) eg:
$DB_HOST =”localhost”; $DB_LOGIN =”root”; $DB_PASSWORD =”123456”;
$DB_NAME =”flag”;
$conn=mysql_connect($DB_HOST,$DB_LOGIN,$DB_PASSWORD);
mysql_select_db; $res=mysql_query(“SELECT * FROM PRODUCT”);
$row=mysql_fetch_array; for $row=mysql_fetch_array;
mysql_data_seek;//移动指针回到查询果的率先行 mysql_fetch_array
将查询的结果存在数组中 语法 复制代码
代码如下: array mysql_fetch_array(resource result[,int
result_type]) eg $DB_HOST =”localhost”; $DB_LOGIN =”root”;
$DB_PASSWORD =”123456”; $DB_NAME =”flag”;
$conn=mysql_connect($DB_HOST,$DB_LOGIN,$DB_PASSWORD);
mysql_select_db; $res=mysql_query(“SELECT * FROM PRODUCT”);
$row=mysql_fetch_array; mysql_fetch_object
得到查询结果风流罗曼蒂克行,并以对象类型存款和储蓄之,与MySQL_fetch_array()使用形式完全雷同,差异的是mysql_fetch_object()只可以通过字段名称来收获查询结果
echo $row->田野同志name; //正确用法 echo $row->0; //错误用法 语法
复制代码 代码如下: object
mysql_fetch_object eg $DB_HOST =”localhost”; $DB_LOGIN =”root”;
$DB_PASSWORD =”123456”; $DB_NAME =”flag”;
$conn=mysql_connect($DB_HOST,$DB_LOGIN,$DB_PASSWORD);
mysql_select_db; $res=mysql_query(“SELECT * FROM PRODUCT”);
$row=$mysql_fetch_object { echo $rowàp_id; echo $rowàp_name; }
mysql_insert_id
在选取INSERT命令增添完一条音讯后,可应用此函数拿到刚刚扩大记录的unique
id 语法 复制代码 代码如下: int
mysql_insert_id([esource link_identifier]) eg $DB_HOST
=”localhost”; $DB_LOGIN =”root”; $DB_PASSWORD =”123456”; $DB_NAME
=”flag”; $conn=mysql_connect($DB_HOST,$DB_LOGIN,$DB_PASSWORD);
mysql_select_db; $SQLStr”INSERT INTO produce VALUES”;
$res=mysql_query; $p_id=mysql_insert_id(); mysql_num_rows
拿到查询结果里有几行 语法 复制代码
代码如下: int mysql_num_rows eg $DB_HOST =”localhost”; $DB_LOGIN
=”root”; $DB_PASSWORD =”123456”; $DB_NAME =”flag”;
$conn=mysql_connect($DB_HOST,$DB_LOGIN,$DB_PASSWORD);
mysql_select_db; $res=mysql_query(“SELECT * FROM PRODUCT”);
$num=mysql_num_rows; mysql_query 送出四个SQL语法的查询语句 语法 复制代码 代码如下: resource mysql_query(string
query[,resource link_identifier]) eg $DB_HOST =”localhost”;
$DB_LOGIN =”root”; $DB_PASSWORD=”123456”; $DB_NAME =”flag”;
$conn=mysql_connect($DB_HOST,$DB_LOGIN,$DB_PASSWORD);
mysql_select_db; $res=mysql_query(“SELECT * FROM PRODUCT”);
mysql_select_db 采纳欲存取的数据库名称 语法 复制代码 代码如下: bool
mysql_select_db(string database_name[,resource link_identifier])
eg $DB_HOST =”localhost”; $DB_LOGIN =”root”; $DB_PASSWORD =”123456”;
$DB_NAME =”flag”;
$conn=mysql_connect($DB_HOST,$DB_LOGIN,$DB_PASSWORD);
mysql_select_db; 2、文件系统函数 copy 复制文本 语法 bool copy(string
source,string dest) eg copy(“abc.txt”,”/tmp/newabc.txt”); fclose
关闭八个开垦文件的指针 语法 bool fclose eg $fp=fopen; fclose; fgets
从文件指针所指地点获取列的内容 语法 string fgets(resource handle[,int
length]) eg $fp=fopen; $txtdata= fgets; file 将一切文件内容读到数组中
语法 array file(string filename[,int use_include_path[,resource
context]]) eg $content=file; file_exists 检查文件是或不是留存 语法 bool
file_exists eg if (file_exists echo “此文件存在”; else
echo”此文件不设有”; filesize 得到文件大小 语法 int filesize eg
$size=filesize; fopen 展开二个文件恐怕url 语法 resource fopen (string
filename,string mode[,bool use-include_path[,resource zcontext]])
eg $fp=fopen; $fp=fopen(“//www.jb51.net/bacteroid/”,”r”); fputs
将数据写至文件中 语法 int fputs(resource handle,string string[,int
length]) eg $fp=fopen; fputs; fseek 设置文件指针所指的岗位 语法 int
fseek(resource handle,int offset[,int whence]) eg $fp=fopen;
$txtdata=fgets; fseek;//将指针指回伊始处 mkdir 组建一个目录 语法 bool
mkdir(string pathname[,int mode[,bool recursive[,resource
context]]]) eg mkdir; unlink 删除文件 语法 int unlink; eg unlink;
3、日期与时光函数 data 再次来到钦赐格式的当地时间/日期 语法 string
date(string format[,int timestamp]) eg $time =date; getdate
获得日期与时光的音信 语法 array getdata eg $now=getdate();
$year=$now[“year”]; $month=$now[“month”]; gettimeofday
获得近年来的日子 语法 array gettimeofday eg $time=gettimeofday();
4、字符串管理函数 explode 依据钦点的相间符将字符串拆分成三个数组 语法
array explode(string separator,string string[,int limit]) eg
$str=”a,b,c”; $res=explode;//$res[0]=a implode
将数组内容连接成贰个字符串 语法 string implode(string glue,array pieces)
eg $newarray=array; $res=implode;//$res=a,b,c strlen 得到字符串的长度
语法 int strlen eg strlen;//传回15 substr 得到字符串钦赐的某某些字符
语法 string substr(“www.gxnu.edu.cn”,1,7); //再次来到”ww.gxnu” 5、数学函数库
ceil 将浮点数的小数部分无条件进位 语法 float ceil eg echo ceil;//再次来到10
echo ceil;//再次回到10 cos 拿到浮点数值的余弦值 语法 float cos eg
$numcos=cos; floor 将浮点数的小数部分无条件去掉 语法 float floor eg echo
floor;//重返9 echo floor;// 重返9 rand 爆发多个节制的大肆数值 语法 int
rand eg $num=rand;//发生二个在乎1到100间的随便数值 round
将浮点数的小数部分四舍五入进位 语法 float round eg float round//重回10
float round//再次回到9 sin 得到浮点数值的正弦值 语法 float sin eg
$numsin=sin; 6、Session函数 session_register
表达生龙活虎(Wissu卡塔 尔(英语:State of Qatar)或八个Session里的变量 语法 bool session_register(mixed
name[,mixed…]) eg $name=”flag”; session_register; session_start
初始化Session 信息 语法 bool session eg session_start(); 7、数组函数
count 总括数组中国共产党有多少个数组函数 语法 int count eg count; list
将数组中的成分值分配给变量 语法 void list(mixed varname,mixed…) eg
$array=array; list=$array;//$str1=a range 创建贰个在钦赐范围内的数组
语法 array range(int low,int high[,int step]) eg $array=array; shuffle
将数组中的成分重新随机排序 语法 bool shuffle eg shuffle;

本文实例总括了PHP常用工具函数。分享给我们供大家参考,具体如下:

正文化总同盟结了PHP类和对象相关系统函数与运算符。分享给大家供大家参照他事他说加以考查,具体如下:

%s%s';$items='';foreach ($clist as $key=>$value){$items .=sprintf($itemTPL,$value['name'],$value['detail']);}$bodyTPL='%s';$data = sprintf; echo "\n".createFile(STORE_PATH, $saveFileName, $data);}set_time_limit;$start_time = time;$categoryDir = "\\tingshu\\web";getClassXml($conn_id,$categoryDir);//获取顶级栏目$clist = getDirListFormFtp($conn_id, $categoryDir);//获取二级栏目分类foreach ($clist as $key=>$value){$_secondCateoryDir = $categoryDir.'\\'.$value['name'];$_secondCateorylist = getDirListFormFtp($conn_id, $_secondCateoryDir);$listData='';$listTPL='%s%s%s';$items ='%s%s';$listItemString='';//获取详细书籍章节列表foreach ($_secondCateorylist as $key=>$book){$listItemString.=sprintf($items,$book['name'], $book['detail']);$_bookListDir = $_secondCateoryDir.'\\'.$book['name'];$chapters = getBook($conn_id,$_bookListDir);//生产book章节htmlgetBookofChapter ;//缓存bookid和章节信息$bookCache[$book['name']] = array('category'=>$value['name'],'chapters'=>$chapters);}//生成二级栏目列表页$listData = sprintf($listTPL, $value['name'], $value['detail'],$listItemString);$list_save_path = $value['name'] . '.xml'; echo "\n".createFile(LIST_PATH, $list_save_path, $listData);}$arrString = "";echo "\n建立缓存文件:".createFile(STORE_PATH, 'bookcache.php', $arrString);/** * 抓取书籍章节信息 * * @param array $bookIds 书籍章节信息 * * @return boolean 返回是否抓取成功 */function getBookofChapter { if ) { return false; } $bookData = '';$bookTPL = '%s%s%s'; $bookItemTPL='%s%s'; //%s//%s//,$item['downurl'],$item['downurl'] $chapterString='';foreach ($chapters as $key=>$item){ $chapterString.=sprintf($bookItemTPL,$item['name'],$item['detail']); } //生成二级栏目列表页$bookData = sprintf($bookTPL, $bookinfo['name'], $bookinfo['detail'],$chapterString); $book_chapter_save_path = $bookinfo['name'] . '.xml'; if  { echo "\n".createFile(CHAPTER_PATH, $book_chapter_save_path, $bookData); } return true;}function getBook($conn_id,$_bookListDir){$chapter=array();$buff = ftp_nlist ( $conn_id, $_bookListDir );if{$resourceArray = array();foreach ($buff as $key=>$value){if(strstr{}else{$resourcesName = str_replace($_bookListDir.'\\', "", $value);$temp = preg_split ( '/\./',$resourcesName);$resourceArray[trim]=$resourcesName;}}foreach ($buff as $key=>$value){if(strstr{$name = trim(str_replace(".txt","",str_replace($_bookListDir.'\\', "", $value)));$chapter[$name] = array ('name' => $name,'detail' => getFileContentsFormFtp ,'downurl' =>$resourceArray[$name]);}}}ksort($chapter , SORT_NUMERIC);echo "\n";var_dump('chapter index :'.implode, ','));echo "\n";return $chapter;}function getDirListFormFtp($conn_id, $categoryDir) {$categoryArray = array ();$dirs = getDirNameFormFtp ( $conn_id, $categoryDir );//获取分类描述foreach ( $dirs as $key => $value ) {$path = $categoryDir . '\\' . $value . '.txt';$categoryArray [] = array ('name' => $value, 'detail' => getFileContentsFormFtp ;}return $categoryArray;}function getFileContentsFormFtp($conn_id, $server_file) {$_tempFileName = STORE_PATH.'temp.tmp';$content = '';try {if (ftp_get ( $conn_id, $_tempFileName, $server_file, FTP_ASCII )) {$content = file_get_contents ;}} catch  {var_dump('error timeout:-----');global $ftp_server;$conn_id = ftp_connect ;if (@ftp_login ( $conn_id, $ftp_user, $ftp_pass )) {echo "Connected as $ftp_user@$ftp_server\n";} else {echo "Couldn't connect as $ftp_user\n";}ftp_pasv;if (ftp_get ( $conn_id, $_tempFileName, $server_file, FTP_ASCII )) {$content = file_get_contents ;}}$content = iconv ( "GBK", "UTF-8//IGNORE", trim;echo "\n";var_dump('file name :'.$server_file.';content:'.$content);return $content;}function getDirNameFormFtp {$buff = ftp_rawlist ( $conn_id, $dirString );$dirs = array_filter ;foreach ( $dirs as $key => $value ) {$temp = preg_split ;$dirs [$key] = trim ;}asort;return $dirs;}function dirfilter {return (strstr ;}ftp_close ;
function RemoveXSS { // remove all non-printable characters. CR and TAB are allowed // this prevents some character re-spacing such as  // note that you have to handle splits with \n, \r, and \t later since they *are* allowed in some inputs $val = preg_replace('/([\x00-\x08,\x0b-\x0c,\x0e-\x19])/', '', $val); // straight replacements, the user should never need these since they're normal characters // this prevents like  $search = 'abcdefghijklmnopqrstuvwxyz'; $search .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; $search .= '1234567890!@#$%^&*()'; $search .= '~`";:?+/={}[]-_|\'\\'; for ($i = 0; $i < strlen { // ;? matches the ;, which is optional // 0{0,7} matches any padded zeros, which are optional and go up to 8 chars // @ @ search for the hex values $val = preg_replace('/([xX]0{0,8}'.dechex.';?)/i', $search[$i], $val); // with a ; // @ @ 0{0,7} matches '0' zero to seven times $val = preg_replace('/({0,8}'.ord/', $search[$i], $val); // with a ; } // now the only remaining whitespace attacks are \t, \n, and \r $ra1 = array('javascript', 'vbscript', 'expression', 'applet', 'meta', 'xml', 'blink', 'link', 'style', 'script', 'embed', 'object', 'iframe', 'frame', 'frameset', 'ilayer', 'layer', 'bgsound', 'title', 'base'); $ra2 = array('onabort', 'onactivate', 'onafterprint', 'onafterupdate', 'onbeforeactivate', 'onbeforecopy', 'onbeforecut', 'onbeforedeactivate', 'onbeforeeditfocus', 'onbeforepaste', 'onbeforeprint', 'onbeforeunload', 'onbeforeupdate', 'onblur', 'onbounce', 'oncellchange', 'onchange', 'onclick', 'oncontextmenu', 'oncontrolselect', 'oncopy', 'oncut', 'ondataavailable', 'ondatasetchanged', 'ondatasetcomplete', 'ondblclick', 'ondeactivate', 'ondrag', 'ondragend', 'ondragenter', 'ondragleave', 'ondragover', 'ondragstart', 'ondrop', 'onerror', 'onerrorupdate', 'onfilterchange', 'onfinish', 'onfocus', 'onfocusin', 'onfocusout', 'onhelp', 'onkeydown', 'onkeypress', 'onkeyup', 'onlayoutcomplete', 'onload', 'onlosecapture', 'onmousedown', 'onmouseenter', 'onmouseleave', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'onmousewheel', 'onmove', 'onmoveend', 'onmovestart', 'onpaste', 'onpropertychange', 'onreadystatechange', 'onreset', 'onresize', 'onresizeend', 'onresizestart', 'onrowenter', 'onrowexit', 'onrowsdelete', 'onrowsinserted', 'onscroll', 'onselect', 'onselectionchange', 'onselectstart', 'onstart', 'onstop', 'onsubmit', 'onunload'); $ra = array_merge; $found = true; // keep replacing as long as the previous round replaced something while  { $val_before = $val; for ($i = 0; $i < sizeof { $pattern = '/'; for ($j = 0; $j < strlen { if  { $pattern .= '('; $pattern .= ''; $pattern .= '|'; $pattern .= '|'; $pattern .= ')*'; } $pattern .= $ra[$i][$j]; } $pattern .= '/i'; $replacement = substr.''.substr; // add in <> to nerf the tag $val = preg_replace($pattern, $replacement, $val); // filter out the hex tags if  { // no replacements were made, so exit the loop $found = false; } } } return $val;}

function GBKtoUTF8{ if { foreach  { $value = GBKtoUTF8; } return $str; }elseif{ $str = iconv("GB18030", "UTF-8//IGNORE", $str); return $str; }else{ return $str; }}

function UTF8toGBK{ if { foreach  { $value = UTF8toGBK; } return $str; }elseif { $str = iconv("UTF-8", "GB18030//IGNORE", $str); return $str; }else{ return $str; }}

系统函数

越来越多关于PHP相关内容感兴趣的读者可查看本站专项论题:《php文件操作计算》、《PHP编码与转码操作技巧汇总》、《php面向对象程序设计入门教程》、《PHP数学生运动算技能总计》、《PHP数组操作手艺大全》、《php字符串用法总计》、《PHP数据结构与算法教程》、《php程序设计算法总计》、《php正则表明式用法总结》、及《php平淡无奇数据库操作技术汇总》

越多关于PHP相关内容感兴趣的读者可查看本站专项论题:《PHP编码与转码操作技术汇总》、《PHP数组操作技巧大全》、《php字符串用法总括》、《php常用函数与技能总括》及《PHP错误与特别处理方式计算》

class_exists() 判定有些类是还是不是留存 interface_exists() 判定接口是或不是存在
get_class() / __CLASS__ 获取有些对象所处的类名 get_parent_class()
获取有些对象所属父类的类名 get_class_methods()
获取贰个类具备办法,再次回到索引数组 get_class_vars()
获取三个类具有属性,下标为属性名 get_declared_classes is_object()
剖断是不是对象 get_object_vars()
得到对象具有属性,重临数组,下标为属性名 property_exists()
决断目的中是还是不是留存该属性 __METHOD__ 获得情势名 __FUNCTION__
拿到函数名

仰望本文所述对我们PHP程序设计有着支持。

梦想本文所述对大家PHP程序设计有着帮忙。

运算符

new 实例化壹个对象 instanceOf 决断二个目的是不是有个别类的实例

class bee{}$o = new bee();if{ echo 'true';}

愈来愈多关于PHP相关内容感兴趣的读者可查看本站专项论题:《php面向对象程序设计入门教程》、《PHP运算与运算符用法总括》、《PHP基本语法入门教程》、《PHP网络编制程序本领总括》、《PHP数组操作工夫大全》、《php字符串用法计算》、《php+mysql数据库操作入门教程》及《php习感到常数据库操作技术汇总》

盼望本文所述对我们PHP程序设计有所协理。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图