php中對於url進行編碼,可以使用 urlencode() 或者 rawurlencode(),二者的區別是前者把空格編碼為 '+',而後者把空格編碼為 '%20',不過應該注意的是,在編碼時應該只對部分url編碼,否則url中的冒號和反斜槓也會被轉義。下面是詳細解釋:
1
string urlencode( string str)
返回字串,此字串中除了 -_. 之外的所有非字母數字字元都將被替換成百分號(%)後跟兩位十六進製制數,空格則編碼為加號(+)。
例子 1 :urlencode函式與rawurlencode函式區別
1
2
3
4
$str
=
'博 客'
;
echo
urlencode(
$str
);
echo
"
";
echo
rawurlencode(
$str
);
url結果:
1
2
%b2%a9+%bf%cd
%b2%a9%20%bf%cd
例子 2 :url中文編碼方法
從url:"博 客" 轉為 url:"%e5%8d%9a%20%e5%ae%a2";
1
2
3
4
$url
=
'博 客'
;
$arr
=
explode
(
'='
,
$url
);
$url
=
$arr
[0].
'='
.rawurlencode(
$arr
[1]);
echo
$url
;
結果:%e5%8d%9a%20%e5%ae%a2
或許用以下url編碼函式
1
2
3
4
5
6
7
8
9
10
11
12
function
cn_urlencode(
$url
)-\x]+/u"
;
//utf-8中文正則
if
(preg_match_all(
$pregstr
,
$url
,
$matcharray
))
if
(
strpos
(
$url
,
' '
))
}
return
$url
;
}
url結果:
%e5%8d%9a%20%e5%ae%a2
CURL抓取頁面時替換頁面內容
其實把抓取下來的頁面用str replace進行替換就可以了 curl.php如下 curl使用 path 1初始化 ch curl init curl setopt ch,curlopt url,path curl setopt ch,curlopt returntransfer,true out...
使用PHP的cURL庫進行網頁抓取
使用php的curl庫可以簡單和有效地去抓網頁。你只需要執行乙個指令碼,然後分析一下你所抓取的網頁,然後就可以以程式的方式得到你想要的資料了。無論是你想從從乙個鏈結上取部分資料,或是取乙個xml檔案並把其匯入資料庫,那怕就是簡單的獲取網頁內容,curl 是乙個功能強大的php庫。本文主要講述如果使用...
結合PHP和CURL抓取遠端網頁資料
要採集 資料,實現也不難,本例就將介紹如何通過php的curl庫來抓取遠端網頁資料。以下超簡單的 演示了如何通過php的curl庫 來遠端抓取乙個網頁的資料資訊 curlopt returntransfer,是個預定義常數,用於告訴curl返回抓取回來的資料資訊而非直接在瀏覽器中顯示這些資料資訊。你...