中山php|最优网络中山做网站 中山php建站

最优良人

Posts Tagged With: php

php多维数组的搜索

2012/12/17 at 20:48 » Comments (743)

1 php搜索多维数组的键值 如下面例子: $foo[1]['a']['xx'] = 'bar 1'; $foo[1]['b']['xx'] = 'bar 2'; $foo[2]['a']['bb'] = 'bar 3'; $foo[2]['a']['yy'] = 'bar 4'; $foo[3]['c']['dd'] = 'bar 3'; $foo[3]['f']['gg'] = 'bar 3'; $foo['info'][1] = 'bar 5'; 如果要查找 bar 3 怎么进行查找呢。有三个结果,而这三个结果都要,看下面的函数: ------------------------------------------------------------------------------------------------------------------------------- function array_search_re($needle, $haystack, $a=0, $nodes_temp=array()){ global ...more »

php过滤客户提交参数,防注入

2012/11/24 at 17:16 » Comments (343)

以下代码实现过滤php的$_GET 和$_POST参数 /** * 安全防范 */ function Add_S($array) { foreach($array as $key=>$value) { if(!is_array($value)) { $value = get_magic_quotes_gpc()?$value:addslashes($value); $array[$key]=filterHtml($value); } Else { Add_S($array[$key]); } } return $array; } function glstr($var) { if (is_array($var)) { return Add_S($var); } elseif(strlen($var)){ $var = get_magic_quotes_gpc()?$var:addslashes($var); $var = filterHtml($var); } return $var; } function filterHtml($html) { $farr = array( "/<!DOCTYPE([^>]*?)>/eis", "/<(\/?)(html|body|head|link|meta|base|input)([^>]*?)>/eis", "/<(script|i?frame|style|title|form)(.*?)<\/\\1>/eis", "/(<[^>]*?\s+)on[a-z]+\s*?=(\"|')([^\\2]*)\\2([^>]*?>)/isU",//过滤javascript的on事件 "/\s+/",//过滤多余的空白 ); $tarr = array( "", "", "", "\\1\\4", " ", ); $html = preg_replace( $farr,$tarr,$html); return $html; } if (sizeof($_GET)) ...more »

smarty模版使用php标签,如何获取模版变量

2012/09/22 at 11:54 » Comments (502)

已经assign一个模版变量$assign,由于要做特殊的循环输出,使用for循环,因此使用到了php标签,但是php语句和模版语句的变量作用域是不同的,因此不能直接获取到 {{php}} for($i=0;$i<count($assign);$i=$i+2){ echo ' <ul> <li> <span class="zz_pic"><a href="'._url('picture',array('col_key'=>'cert','pic_id'=>$assign[$i][pic_id])).'" title=""><img src="uploads/thumb_'.$assign[$i][pic].'" alt=""></a></span> <span class="zz_title"><a href="'._url('picture',array('col_key'=>'cert','pic_id'=>$assign[$i][pic_id])).'" title="">'.$assign[$i][title].'</a></span> </li> <li> <span class="zz_pic"><a href="'._url('picture',array('col_key'=>'cert','pic_id'=>$assign[$i+1][pic_id])).'" title=""><img src="uploads/thumb_'.$assign[$i+1][pic].'" alt=""></a></span> <span class="zz_title"><a href="'._url('picture',array('col_key'=>'cert','pic_id'=>$assign[$i+1][pic_id])).'" title="">'.$assign[$i+1][title].'</a></span> </li>i> </ul>';} {{/php}} 解决的方法是:模版变量全部存在smarty的一个对象里面;只要在for之前进行赋值:$assign = $this->_tpl_vars[assign]; {{php}} $assign = $this->_tpl_vars[assign]; for($i=0;$i<count($assign);$i=$i+2){ echo ...more »

php字符串截取函数,自动清除网页标签

2012/06/07 at 17:40 » Comments (4)

/** * 字符串截取函数 自动清除网页标签 **/ Function str_cut($string, $length = 80, $etc = '...', $code = 'UTF-8') { $string = strip_tags(preg_replace('!\s+!', $string, ' ')); if ($length == 0) return ''; if ($code == 'UTF-8') { $pa = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/"; } else { $pa = ...more »

php清空某个目录的方法

2012/06/04 at 15:05 » Comments (82)

以下代码可以清空多层的目录结构: function del_dir($dir){ { if (!$dir) { return ; } $cacheDir = $dir; $dh = opendir($cacheDir); while ( $file = readdir($dh) ) { if (($file == '.') || ($file == '..')) { continue; } if (file_exists( $cacheDir .'/'.$file)) ...more »

phpmyadmin导出的sql如何通过php导入

2012/06/04 at 12:15 » Comments (21)

以下函数可以直接把从phpmyadmin导出的sql文件直接通过php插入数据库: //$file表示通过读取sql文件返回的字符串,比如$file2=file_get_contents('db.sql'); function import($file2){ $Db = new Db(); $file2=explode("\n",$file2);//将文件内容按行读入到数组 $c1=count($file2); for($j=0;$j<$c1;$j++) { $ck=substr($file2[$j],0,4);//取每行的前4个字符 if( ereg("#",$ck)||ereg("--",$ck) )//去掉注释 { continue; } $arr[]=$file2[$j];//将去掉注释的文件内容按行读入数组$arr,数组每个元素对应一行 } $read=implode("\n",$arr); //重新组织文件内容到一个字符串,(按照原来分好的一行一行的) $sql=str_replace("\r",'',$read);//去掉"\r(回车符)" $detail=explode(";\n",$sql); //将经上述整理过的文件内容再次按一条完整的sql语句(以;和\n分隔)导入到数组$detail, //此时数组detail的每个元素对应一条完整的sql语句 $count=count($detail); for($i=0;$i<$count;$i++) { $sql=str_replace("\r",'',$detail[$i]);//去掉每行sql中的回车符 $sql=str_replace("\n",'',$sql);//去掉换行符 $sql=trim($sql);//去掉前后空格 //现在的$sql $Db->query($sql); } } more »

php date函数的时区问题,输出时间有误

2012/06/02 at 10:16 » Comments (15)

问题:echo date('o-m-j H:i'); 输出结果与本地时间相差8小时。 原因:时区未正确设置。 两种解决方法: 1.加入date_default_timezone_set('Asia/Shanghai'); 2. 修改php.ini [Date] ; Defines the default timezone used by the date functions date.timezone = PRC 注:PRC为中化人民共和国 more »

php使用mail函数发送邮件,解决乱码问题

2012/06/01 at 11:03 » Comments (24)

$to = 'sales@zui88.com'; $subject = "=?UTF-8?B?".base64_encode('网站收到一个新信息')."?="; $message = " 用户姓名:{$_POST['name']}\n 用户邮箱:{$_POST['email']}\n 用户电话:{$_POST['contact']}\n 留言内容:{$_POST['content']} "; $headers = 'From: webmaster@zui88.com' . "\r\n" . 'Reply-To: webmaster@zui88.com' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n"; mail($to, $subject, $message, $headers); more »

移植方便的php数据库操作类,建表增删改查

2012/05/30 at 17:46 » Comments (3)

<?php /** * * 数据操作类 * @author Xiaoqiang * @link // * @copyright Xiaoqiang * @version Svn $Id$ * @package */ class Db { var $links; // 构造函数,初始化数据库(主机,用户名,密码,数据库名) function __construct() { $this->links = mysql_connect(DB_HOST, DB_USER, DB_PWD); if(DEBUG){ mysql_select_db(DB_NAME) or die('ERROR:'.mysql_error()); } else{ mysql_select_db(DB_NAME); } $char_sql = "SET NAMES '" . CHARSET ...more »

php采集程序,提取网页超链接,邮箱或其他特定内容

2012/05/30 at 16:48 » Comments (190)

以下代码从上一篇文章修改而来,专门用于提取网页所有超链接,邮箱或其他特定内容 <?php function fetch_urlpage_contents($url){ $c=file_get_contents($url); return $c; } //获取匹配内容 function fetch_match_contents($begin,$end,$c) { $begin=change_match_string($begin); $end=change_match_string($end); $p = "#{$begin}(.*){$end}#iU";//i表示忽略大小写,U禁止贪婪匹配 if(preg_match_all($p,$c,$rs)) { return $rs;} else { return "";} }//转义正则表达式字符串 function change_match_string($str){ //注意,以下只是简单转义 $old=array("/","$",'?'); $new=array("\/","\$",'\?'); $str=str_replace($old,$new,$str); return $str; } //采集网页 function pick($url,$ft,$th) { $c=fetch_urlpage_contents($url); foreach($ft as $key => $value) { $rs[$key]=fetch_match_contents($value["begin"],$value["end"],$c); if(is_array($th[$key])) { foreach($th[$key] as $old => $new) { $rs[$key]=str_replace($old,$new,$rs[$key]); } } } return $rs; } $url="http://www.zui88.com"; //要采集的地址 $ft["a"]["begin"]='<a'; //截取的开始点<br /> $ft["a"]["end"]='>'; //截取的结束点 $rs=pick($url,$ft,$th); //开始采集 print_r($rs["a"]); ?> more »