騰訊地圖經緯度轉百度地圖經緯度
php
/** * 中國正常GCJ02座標---->百度地圖BD09座標 * 騰訊地圖用的也是GCJ02座標 * @param double $lat 緯度 * @param double $lng 經度 */ function Convert_GCJ02_To_BD09($lat,$lng){ $x_pi = 3.14159265358979324 * 3000.0 / 180.0; $x = $lng; $y = $lat; $z =sqrt($x * $x + $y * $y) + 0.00002 * sin($y * $x_pi); $theta = atan2($y, $x) + 0.000003 * cos($x * $x_pi); $lng = $z * cos($theta) + 0.0065; $lat = $z * sin($theta) + 0.006; return array('lng'=>$lng,'lat'=>$lat); } /** * 百度地圖BD09座標---->中國正常GCJ02座標 * 騰訊地圖用的也是GCJ02座標 * @param double $lat 緯度 * @param double $lng 經度 * @return array(); */ function Convert_BD09_To_GCJ02($lat,$lng){ $x_pi = 3.14159265358979324 * 3000.0 / 180.0; $x = $lng - 0.0065; $y = $lat - 0.006; $z = sqrt($x * $x + $y * $y) - 0.00002 * sin($y * $x_pi); $theta = atan2($y, $x) - 0.000003 * cos($x * $x_pi); $lng = $z * cos($theta); $lat = $z * sin($theta); return array('lng'=>$lng,'lat'=>$lat); }
<?php header("content-type:text/html;charset=utf-8"); require_once('Parsedown.php'); $text = '##Markdown有哪些功能? * 方便的`導入導出`功能 * 直接把一個markdown的文本文件拖放到當前這個頁面就能夠了 * 導出爲一個html格式的文件,樣式一點也不會丟失 * 編輯和預覽`同步滾動`,所見即所得(右上角設置) * `VIM快捷鍵`支持,方便vim黨們快速的操做 (右上角設置) * 強大的`自定義CSS`功能,方便定製本身的展現 * 有數量也有質量的`主題`,編輯器和預覽區域 * 完美兼容`Github`的markdown語法 * 預覽區域`代碼高亮` * 全部選項自動記憶 '; $result = Parsedown::instance()->parse($text); echo $result;
markdown下載連接:http://pan.baidu.com/s/1eQo3cBohtml
php輸出頁面全部變量shell
<?php print_r(get_defined_vars());
此函數返回一個包含全部已定義變量列表的多維數組,這些變量包括環境變量、服務器變量和用戶定義的變量。json
獲取全部已經定義的函數vim
<?php get_defined_functions()
獲取全部可用的模塊數組
<?php get_loaded_extensions()
獲取指定模塊的可用函數瀏覽器
<?php get_extension_funcs()
該函數返回指定模塊全部可用的函數。傳入的參數(模塊名稱)必須是小寫服務器
獲取關聯數組的名字全部的常量和他們的值 — (PHP 4 >= 4.1.0, PHP 5)markdown
<?php get_defined_constants()
get_declared_classes (PHP 4, PHP 5) — 獲取由已定義類的名字所組成的數組cookie
<?php get_declared_classes()
get_included_files()(或者get_require_files) (PHP 4, PHP 5) — 獲取由已定義類的名字所組成的數組
<?php get_included_files()
抓取個json數據,不知道哪裏錯了。遂重寫一個
curl
<?php header("content-type:text/html;charset=utf8"); $curl = curl_init('https://www.phpcto.org/course/19/lesson/170'); // 不輸出header頭信息 curl_setopt($curl, CURLOPT_HEADER, 0); curl_setopt($curl, CURLOPT_COOKIE, ' PHPSESSID=q406pvav5da7st8q4ov6c482e0'); // 假裝瀏覽器 curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36'); // 保存到字符串而不是輸出 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $rs = curl_exec($curl); curl_close($curl); //echo $rs; $arr=json_decode($rs,true); print_r($arr);
1、PHPMailer
下載地址:http://pan.baidu.com/s/1o6LugJo
$mail = new PHPMailer(true); $mail->IsSMTP(); $mail->CharSet='UTF-8'; $mail->SMTPAuth = true; $mail->Port = 25; $mail->Host = "smtp.163.com";//郵箱smtp地址,此處以163爲例 $mail->Username = "你的郵箱帳號";//你的郵箱帳號 $mail->Password = "你的郵箱密碼";//你的郵箱密碼 $mail->From = "你的郵箱帳號";//你的郵箱帳號 $mail->FromName = get_option('blogname'); $to = $to; $mail->AddAddress($to); $mail->Subject = $subject; $mail->Body = $message; $mail->WordWrap = 80; //$mail->AddAttachment("f:/test.png"); //能夠添加附件 $mail->IsHTML(true); $mail->Send(); } catch (phpmailerException $e) { // echo "郵件發送失敗:".$e->errorMessage(); //測試的時候能夠去掉此行的註釋 }
QueryList下載地址: http://pan.baidu.com/s/1sjlvTSh
因爲要提取學校網站新聞標題和連接,首先想到的是正則,此次想換種方法去作,想到有QueryList這好東西,拿來試試
再來看看其標籤:
td下面的a標籤
廢話很少說,上代碼:
<?php require 'QueryList/QueryList.class.php'; $url = "http://www.hkxy.edu.cn/"; $reg = array( "title" => array("td>a","text"), "src" => array("td>a","href"), ); //$rang = "[id^=post-]"; $hj = QueryList::Query($url,$reg); //$hj = QueryList::Query($url,$reg,$rang); for($i=0;$i<count($hj->jsonArr);$i++){ //$hj->jsonArr[$i]['title']=html_entity_decode(($hj->jsonArr[$i]['title']),ENT_NOQUOTES,'utf-8'); $hj->jsonArr[$i]['title']=str_replace(' ','',$hj->jsonArr[$i]['title']); } print_r($hj->jsonArr); //echo $hj->getJSON();
再來看下效果
第一種,cURL:判斷URL是否能訪問.0爲失敗
$curl = curl_init(); //$url='http://113.57.132.2:83/login.aspx'; $url='http://www.hkxy.edu.cn'; curl_setopt($curl, CURLOPT_URL, $url); //設置URL curl_setopt($curl, CURLOPT_HEADER, 1); //獲取Header curl_setopt($curl,CURLOPT_NOBODY,true); //Body就不要了吧,咱們只是須要Head curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //數據存到成字符串吧,別給我直接輸出到屏幕了 curl_setopt($curl, CURLOPT_TIMEOUT, 7); $data = curl_exec($curl); //開始執行啦~ echo curl_getinfo($curl,CURLINFO_HTTP_CODE); //我知道HTTPSTAT碼哦~ curl_close($curl); //用完記得關掉他
第二種,$http_response_header
file_get_contents()超時設置:
$ctx = stream_context_create(array('http' => array('timeout' => 20)));
$result = @file_get_contents($url,false,$ctx);
<?php
function get_contents() {
file_get_contents("http://example.com");
var_dump($http_response_header);
}
get_contents();
var_dump($http_response_header);
?>
以上例程的輸出相似於:
array(9) { [0]=> string(15) "HTTP/1.1 200 OK" [1]=> string(35) "Date: Sat, 12 Apr 2008 17:30:38 GMT" [2]=> string(29) "Server: Apache/2.2.3 (CentOS)" [3]=> string(44) "Last-Modified: Tue, 15 Nov 2005 13:24:10 GMT" [4]=> string(27) "ETag: "280100-1b6-80bfd280"" [5]=> string(20) "Accept-Ranges: bytes" [6]=> string(19) "Content-Length: 438" [7]=> string(17) "Connection: close" [8]=> string(38) "Content-Type: text/html; charset=UTF-8" } NULL
<?php class Security { public static function encrypt($input, $key) { $size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB); $input = Security::pkcs5_pad($input, $size); $td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_ECB, ''); $iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND); mcrypt_generic_init($td, $key, $iv); $data = mcrypt_generic($td, $input); mcrypt_generic_deinit($td); mcrypt_module_close($td); $data = base64_encode($data); return $data; } private static function pkcs5_pad ($text, $blocksize) { $pad = $blocksize - (strlen($text) % $blocksize); return $text . str_repeat(chr($pad), $pad); } public static function decrypt($sStr, $sKey) { $decrypted= mcrypt_decrypt( MCRYPT_RIJNDAEL_128, $sKey, base64_decode($sStr), MCRYPT_MODE_ECB ); $dec_s = strlen($decrypted); $padding = ord($decrypted[$dec_s-1]); $decrypted = substr($decrypted, 0, -$padding); return $decrypted; } } $key = "rt94123456"; $data = "1234567890"; $value = Security::encrypt($data , $key ); echo $value.'<br/>'; echo Security::decrypt($value, $key );
今天作了個模擬抓取CET成績查詢的,發現帳號和姓名是正確的就是始終沒法登陸,最後一步步比對,發現GBK和UTF8的 unicode轉換是不同的。
$str = iconv("GB2312", "UTF-8", $str);
GBK轉UTF8
今天須要將某個網站般去另外一臺服務器。設置好運行,顯示一大堆Deprecated。
Deprecated: Assigning the return value of new by reference is deprecated in。
新服務器與舊服務器環境是同樣的,後來查看php版本,發現舊服務器是 PHP 5.2.4 新的是PHP 5.3.2。以前瞭解到5.3 與 5.3以前的區別較大,因而查看php文檔。
在5.3版本以後已經不容許在程序中使用"=&"符號。
若是出現了Deprecated: Assigning the return value of new by reference is deprecated in 錯誤,
先找到出錯的文件,查找下是否是在程序中使用了"=&",如發現使用了"=&"符號,將 "=&" 改爲 "=" 便可解決問題。
$link =& $this->links[$linkKey]; // 改成 $link = $this->links[$linkKey];