<form id="r1thr"><form id="r1thr"><th id="r1thr"></th></form></form>

              中山php|最優網絡中山做網站 中山php建站

              最優良人

              2013/05/13 at 12:56

              用新浪搜狐騰訊jS接口取客戶端IP及省份城市

              新浪的IP地址查詢接口:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js

              新浪多地域測試方法:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=218.192.3.42

              搜狐IP地址查詢接口(默認GBK):http://pv.sohu.com/cityjson

              搜狐IP地址查詢接口(可設置編碼):http://pv.sohu.com/cityjson?ie=utf-8

              搜狐另外的IP地址查詢接口:http://txt.go.sohu.com/ip/soip

              騰訊的接口:http://fw.qq.com/ipaddress (騰訊的接口原本是最好用的,可現在打不開啦)

              上面的接口中新浪的是js接口說明:

              <script type="text/javascript" src=" <script type="text/javascript">
              function ipmsg() {
              var ss = remote_ip_info['country']??+ remote_ip_info['province']+ remote_ip_info['city'];
              document.getElementByIdx_x_x("<%=HiddenField1.ClientID %>").value = ss;

              }
              </script>

               

              2013/03/30 at 14:48

              php壓縮html : 清除換行符,清除制表符,去掉注釋標記

              /**
              * 壓縮html : 清除換行符,清除制表符,去掉注釋標記
              * @param $string
              * @return 壓縮后的$string
              * */
              function compress_html($string) {
              $string = str_replace("\r\n", '', $string); //清除換行符
              $string = str_replace("\n", '', $string); //清除換行符
              $string = str_replace("\t", '', $string); //清除制表符
              $pattern = array (
              "/> *([^ ]*) *</", //去掉注釋標記
              "/[\s]+/",
              "/<!--[^!]*-->/",
              "/\" /",
              "/ \"/",
              "'/\*[^*]*\*/'"
              );
              $replace = array (
              ">\\1<",
              " ",
              "",
              "\"",
              "\"",
              ""
              );
              return preg_replace($pattern, $replace, $string);
              }

              comments Comments (689)    -
              2013/03/29 at 18:55

              php防止刷流量攻擊

              <?php
              //查詢禁止IP
              $ip =$_SERVER['REMOTE_ADDR'];
              $fileht=".htaccess2";
              if(!file_exists($fileht))file_put_contents($fileht,"");
              $filehtarr=@file($fileht);
              if(in_array($ip."\r\n",$filehtarr))die("Warning:"."<br>"."Your IP address are forbided by some reason, IF you have any question Pls emill to shop@mydalle.com!");

              //加入禁止IP
              $time=time();
              $fileforbid="log/forbidchk.dat";
              if(file_exists($fileforbid))
              { if($time-filemtime($fileforbid)>60)unlink($fileforbid);
              else{
              $fileforbidarr=@file($fileforbid);
              if($ip==substr($fileforbidarr[0],0,strlen($ip)))
              {
              if($time-substr($fileforbidarr[1],0,strlen($time))>600)unlink($fileforbid);
              elseif($fileforbidarr[2]>600){file_put_contents($fileht,$ip."\r\n",FILE_APPEND);unlink($fileforbid);}
              else{$fileforbidarr[2]++;file_put_contents($fileforbid,$fileforbidarr);}
              }
              }
              }
              //防刷新
              $str="";
              $file="log/ipdate.dat";
              if(!file_exists("log")&&!is_dir("log"))mkdir("log",0777);
              if(!file_exists($file))file_put_contents($file,"");
              $allowTime = 120;//防刷新時間
              $allowNum=10;//防刷新次數
              $uri=$_SERVER['REQUEST_URI'];
              $checkip=md5($ip);
              $checkuri=md5($uri);
              $yesno=true;
              $ipdate=@file($file);
              foreach($ipdate as $k=>$v)
              { $iptem=substr($v,0,32);
              $uritem=substr($v,32,32);
              $timetem=substr($v,64,10);
              $numtem=substr($v,74);
              if($time-$timetem<$allowTime){
              if($iptem!=$checkip)$str.=$v;
              else{
              $yesno=false;
              if($uritem!=$checkuri)$str.=$iptem.$checkuri.$time."1\r\n";
              elseif($numtem<$allowNum)$str.=$iptem.$uritem.$timetem.($numtem+1)."\r\n";
              else
              {
              if(!file_exists($fileforbid)){$addforbidarr=array($ip."\r\n",time()."\r\n",1);file_put_contents($fileforbid,$addforbidarr);}
              file_put_contents("log/forbided_ip.log",$ip."--".date("Y-m-d H:i:s",time())."--".$uri."\r\n",FILE_APPEND);
              $timepass=$timetem+$allowTime-$time;
              die("Warning:"."<br>"."Sorry,you are forbided by refreshing frequently too much, Pls wait for ".$timepass." seconds to continue!");
              }
              }
              }
              }
              if($yesno) $str.=$checkip.$checkuri.$time."1\r\n";
              file_put_contents($file,$str);

              comments Comments (0)    -
              2012/12/17 at 20:48

              php多維數組的搜索

              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 $nodes_found;
              $a++;
              foreach ($haystack as $key1=>$value1) {
              ??? $nodes_temp[$a] = $key1;
              ??? if (is_array($value1)){???
              ????? array_search_re($needle, $value1, $a, $nodes_temp);
              ??? }
              ??? else if ($value1 === $needle){
              ????? $nodes_found[] = $nodes_temp;
              ??? }
              }
              return $nodes_found;
              }
              ---------------------------------------------------------------------------------------------------------------------------------
              這個函數就可以把上面要查找到的內容全部返回出鍵名來
              $result = array_search_re('bar 3', $foo);

              print_r($result);

              輸出結果為如下:
              Array ( [0] => Array ( [1] => 2 [2] => a [3] => bb )
              ?????? ?? [1] => Array ( [1] => 3 [2] => c [3] => dd )
              ?????? ?? [2] => Array ( [1] => 3 [2] => f [3] => gg )
              ???? ?? )

              1 php搜索多維數組的鍵名

              function array_search_key($needle, $haystack){
              global $nodes_found;

              foreach ($haystack as $key1=>$value1) {
              ?
              ?if ($key1=== $needle){
              ?
              ??$nodes_found[] = $value1;
              ???????
              ?? }
              ??? if (is_array($value1)){???
              ????? array_search_key($needle, $value1);
              ??? }
              ???
              ???
              }

              return $nodes_found;
              }
              $result = array_search_key('a', $foo);

              print_r($result);

              輸出結果為如下:
              ?

              Array
              (
              ??? [0] => Array
              ??????? (
              ??????????? [xx] => bar 1
              ??????? )

              ??? [1] => Array
              ??????? (
              ??????????? [bb] => bar 3
              ??????? )

              ??? [2] => Array
              ??????? (
              ??????????? [yy] => bar 4
              ??????? )

              )

              標簽:,
              comments Comments (743)    -
              2012/12/04 at 14:34

              網站排名下降時是否是修改關鍵詞的時機

              最近網站排名出現變動,幾個排名一直穩定在百度前三的關鍵詞出現下降,甚至完全被k的情況,經過分析,發現是收到友情鏈接的牽連,有三個友鏈網站被k,對方鏈回我的那個關鍵詞排名直接沒有。

              剛好我也想把 中山網站建設?這個關鍵詞設為主關鍵詞,以前由于其他詞的排名都比較穩定,不敢輕易修改,怕其他的收到影響,這次趁此機會一起改了,看看效果如果,驗證一下? 網站排名下降時是否是修改關鍵詞的時機,也給其他站長做一個參考。

              comments Comments (310)    -
              2012/11/24 at 17:16

              php過濾客戶提交參數,防注入

              以下代碼實現過濾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)) {
              foreach($_GET as $key => $value) {
              $_GET[$key] = glstr($value); //
              }

              }
              if (sizeof($_POST)) {
              foreach($_POST as $key => $value) {
              $_POST[$key] = glstr($value); //
              }
              }

              標簽:,
              comments Comments (343)    -
              2012/11/14 at 16:28

              php計算代碼運行時間和使用內存

              <?php

              //開始計時


              $HeaderTime =
              microtime(true);//參數true表示返回浮點數值

              //代碼

              //...

              printf(" total run: %.2f s<br>".
              "memory usage: %.2f M<br> ",
              microtime(true)-$HeaderTime,
              memory_get_usage() / 1024 / 1024 );
              ?>
              結果:

              total runtime: 1.47 s

              memory usage: 77.09 M

              標簽:
              comments Comments (454)    -
              2012/10/07 at 16:47

              select下拉菜單實現友情鏈接跳轉

              <select name="select" class="home_left_select" onchange="window.location=this.options[this.selectedIndex].value">
              <option value="#">友情鏈接</option>
              <option value="http://www.baidu.com">2</option>
              <option value="http://www.baidu.com">2</option>
              <option value="http://www.baidu.com">2</option>
              <option value="http://www.baidu.com">2</option>
              <option value="http://www.baidu.com">2</option>
              </select>

              以上代碼實現選中項跳轉到指定鏈接

              標簽:
              comments Comments (399)    -
              2012/09/26 at 11:42

              mysql STRICT_TRANS_TABLES嚴格模式下提示Field 'id' doesn't have a default value

              in: 數據庫

              在別的服務器運行我的網站程序的時候,出現了Field 'id' doesn't have a default value 的提示,意思是這個值我沒有提交數據,并且數據庫結構沒有設置默認值,由于對方的mysql服務器開啟了STRICT_TRANS_TABLES嚴格模式,所以報錯了

              解決方法是:

              如果自己的服務器,有權限修改my.ini的話,打開my.ini,查找
              sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

              修改為

              sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

              然后重啟MYSQL

              在別人的虛擬空間上當然不可能實現,所以根本的解決方法還是修改自己的數據結構,把非空的字段加上默認值,以后設計數據庫要注意這一點,方便程序的移植

              標簽:,
              comments Comments (431)    -
              2012/09/22 at 11:54

              smarty模版使用php標簽,如何獲取模版變量

              已經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 '
              <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}}

              標簽:,
              comments Comments (502)    -
              亚洲A片在线观看网址,AAA级黄色片,又大又粗又长视频,亚洲干插,亚洲综合一区二区三区不卡