中山php|最優(yōu)網(wǎng)絡(luò) :中山做網(wǎng)站 中山php建站
最優(yōu)良人
Posts Tagged With: php
php多維數(shù)組的搜索
2012/12/17 at 20:48 » Comments (743)
1 php搜索多維數(shù)組的鍵值 如下面例子: $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 怎么進(jìn)行查找呢。有三個結(jié)果,而這三個結(jié)果都要,看下面的函數(shù): ------------------------------------------------------------------------------------------------------------------------------- function array_search_re($needle, $haystack, $a=0, $nodes_temp=array()){ global ...more »php過濾客戶提交參數(shù),防注入
2012/11/24 at 17:16 » Comments (343)
以下代碼實現(xiàn)過濾php的$_GET 和$_POST參數(shù) /** * 安全防范 */ 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標(biāo)簽,如何獲取模版變量
2012/09/22 at 11:54 » Comments (502)
已經(jīng)assign一個模版變量$assign,由于要做特殊的循環(huán)輸出,使用for循環(huán),因此使用到了php標(biāo)簽,但是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之前進(jìn)行賦值:$assign = $this->_tpl_vars[assign]; {{php}} $assign = $this->_tpl_vars[assign]; for($i=0;$i<count($assign);$i=$i+2){ echo ...more »php字符串截取函數(shù),自動清除網(wǎng)頁標(biāo)簽
2012/06/07 at 17:40 » Comments (4)
/** * 字符串截取函數(shù) 自動清除網(wǎng)頁標(biāo)簽 **/ 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)
以下代碼可以清空多層的目錄結(jié)構(gòu): 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導(dǎo)出的sql如何通過php導(dǎo)入
2012/06/04 at 12:15 » Comments (21)
以下函數(shù)可以直接把從phpmyadmin導(dǎo)出的sql文件直接通過php插入數(shù)據(jù)庫: //$file表示通過讀取sql文件返回的字符串,比如$file2=file_get_contents('db.sql'); function import($file2){ $Db = new Db(); $file2=explode("\n",$file2);//將文件內(nèi)容按行讀入到數(shù)組 $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];//將去掉注釋的文件內(nèi)容按行讀入數(shù)組$arr,數(shù)組每個元素對應(yīng)一行 } $read=implode("\n",$arr); //重新組織文件內(nèi)容到一個字符串,(按照原來分好的一行一行的) $sql=str_replace("\r",'',$read);//去掉"\r(回車符)" $detail=explode(";\n",$sql); //將經(jīng)上述整理過的文件內(nèi)容再次按一條完整的sql語句(以;和\n分隔)導(dǎo)入到數(shù)組$detail, //此時數(shù)組detail的每個元素對應(yīng)一條完整的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);//去掉前后空格 //現(xiàn)在的$sql $Db->query($sql); } } more »php date函數(shù)的時區(qū)問題,輸出時間有誤
2012/06/02 at 10:16 » Comments (15)
問題:echo date('o-m-j H:i'); 輸出結(jié)果與本地時間相差8小時。 原因:時區(qū)未正確設(shè)置。 兩種解決方法: 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函數(shù)發(fā)送郵件,解決亂碼問題
2012/06/01 at 11:03 » Comments (24)
$to = 'sales@zui88.com'; $subject = "=?UTF-8?B?".base64_encode('網(wǎng)站收到一個新信息')."?="; $message = " 用戶姓名:{$_POST['name']}\n 用戶郵箱:{$_POST['email']}\n 用戶電話:{$_POST['contact']}\n 留言內(nèi)容:{$_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數(shù)據(jù)庫操作類,建表增刪改查
2012/05/30 at 17:46 » Comments (3)
<?php /** * * 數(shù)據(jù)操作類 * @author Xiaoqiang * @link // * @copyright Xiaoqiang * @version Svn $Id$ * @package */ class Db { var $links; // 構(gòu)造函數(shù),初始化數(shù)據(jù)庫(主機(jī),用戶名,密碼,數(shù)據(jù)庫名) 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采集程序,提取網(wǎng)頁超鏈接,郵箱或其他特定內(nèi)容
2012/05/30 at 16:48 » Comments (190)
以下代碼從上一篇文章修改而來,專門用于提取網(wǎng)頁所有超鏈接,郵箱或其他特定內(nèi)容 <?php function fetch_urlpage_contents($url){ $c=file_get_contents($url); return $c; } //獲取匹配內(nèi)容 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 "";} }//轉(zhuǎn)義正則表達(dá)式字符串 function change_match_string($str){ //注意,以下只是簡單轉(zhuǎn)義 $old=array("/","$",'?'); $new=array("\/","\$",'\?'); $str=str_replace($old,$new,$str); return $str; } //采集網(wǎng)頁 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://m.jartj.cn"; //要采集的地址 $ft["a"]["begin"]='<a'; //截取的開始點<br /> $ft["a"]["end"]='>'; //截取的結(jié)束點 $rs=pick($url,$ft,$th); //開始采集 print_r($rs["a"]); ?> more »