PHP被許多程序員用來開發(fā)WEB的首選語言。在實際開發(fā)中,網站的各項功能都可以通過PHP語言的編寫來滿足,比如PHP頁面跳轉這一方法。
十余年的臨川網站建設經驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。成都全網營銷的優(yōu)勢是能夠根據(jù)用戶設備顯示端的尺寸不同,自動調整臨川建站的顯示方式,使網站能夠適用不同顯示終端,在瀏覽器中調整網站的寬度,無論在任何一種瀏覽器上瀏覽網站,都能展現(xiàn)優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)公司從事“臨川網站設計”,“臨川網站推廣”以來,每個客戶項目都認真落實執(zhí)行。
探討PHP變量解析順序如何獲取提交數(shù)據(jù)
深入解讀PHP運行機制
淺析PHP函數(shù)extract()應用技巧
為你總結一些PHP信息函數(shù)
PHP查詢字符串技巧分享
Web系統(tǒng)中,從一個網頁跳轉到另一個網頁,是LAMP項目中最常用的技術之一。頁面跳轉可能是由于用戶單擊鏈接、按鈕等引發(fā)的,也可能是系統(tǒng)自動產生的。 此處介紹PHP中常用的實現(xiàn)頁面自動跳轉的方法。
PHP頁面跳轉一、header()函數(shù)
header()函數(shù)是PHP中進行頁面跳轉的一種十分簡單的方法。header()函數(shù)的主要功能是將HTTP協(xié)議標頭(header)輸出到瀏覽器。
header()函數(shù)的定義如下:
void header (string string [,bool replace [,int http_response_code]])
可選參數(shù)replace指明是替換前一條類似標頭還是添加一條相同類型的標頭,默認為替換。
第二個可選參數(shù)http_response_code強制將HTTP相應代碼設為指定值。 header函數(shù)中Location類型的標頭是一種特殊的header調用,常用來實現(xiàn)頁面跳轉。注意:1.location和“:”號間不能有空格,否則不會跳轉。
2.在用header前不能有任何的輸出。
3.header后的PHP代碼還會被執(zhí)行。
phpmyadmin,就可以實現(xiàn)啊,導出成sql,另一臺機器用phpmyadmin導入即可
一、用form表單中的hidden隱藏域。這種方法就是把待傳遞的變量用表單的方式再次傳送,比如在用戶登陸后,把他的信息如$username、$id等等信息用表單發(fā)送到下一張網頁,當然,很多情況,是諸如text、option等等框體不想再被看到的話,可以采用隱藏的輸入域。下面是一個實例,假設$username是經過上頁為驗證身份發(fā)送到本頁并且在本頁經過驗證的變量,想傳遞到下一頁中去,那么可以建立文件test4.PHP:
?$username="張明";?
form method="post" action="test5.php"
input type="hidden" name="username" value="?echo $username?"
input type="submit" name="submit" value="看看"
/form
test5.php:
?echo "你好,$username,歡迎光臨php自學網!";?
打開apache服務器,輸入在頁面的按鈕上點擊,會發(fā)現(xiàn)新出的網頁上$username的值已經傳送過來了。
當然這種方法的弱點是很明顯的,它還要再使用一個表單,而且在test5.php的網頁上想要刷新的話還要重新發(fā)送,這顯然是不太友好的。
二、使用session。后來,我查找了一些關于session的文章,覺得這時傳遞變量的一種非常好的方法。下面通過舉例子來說明:
建立一個新文件test6.php:
?session_start(); //初始化一個session
session_register("username"); //注冊一個session變量
$username="張明"; //要傳遞的變量值
echo "a href=test7.php去看看/a";
?
test7.php:
?session_start(); //初始化一個session
echo "你好,$username,歡迎光臨php自學網!";? //顯示傳遞過來的變量
使用這種方法的時候要注意:?session_start();?應該放在文件的最前面,即"?"前面不應有任何內容,包括空格,這是我調試多次未成功找出的原因。
這個變量只能在當前打開的瀏覽器中傳遞,若要在新打開的窗口中也能傳遞,剛要按下面的方法來做:
文件:test8.php
?session_start();
session_register("username");
$username="張明";
echo "a href=test7.php?$a=".session_id()." target=_blank去看看/a"; //將當前的session的id值傳給下一個窗口。
?
test7.php
?session_start();
echo "你好,$username,歡迎你的光臨!";?
三,通過cookie
建立文件test9.php
?SetCookie("username","張明");//把username設置到cookie中去
echo "a href=test5.php target=_blank去看看/a";?
文件test5.php
建立test5.php:
?echo "你好,$username,歡迎你的光臨php自學網!";?
總結:以上只是一些常用的方法,還有很多的方法,如可以使用數(shù)據(jù)庫,memcache等等.在此不做過多介紹.
可以用以下4個方法來抓取網站 的數(shù)據(jù):
1. 用 file_get_contents 以 get 方式獲取內容:
?
$url = '';
$html = file_get_contents($url);
echo $html;
2. 用fopen打開url,以get方式獲取內容
?
$url = '';
$fp = fopen($url, 'r');
stream_get_meta_data($fp);
$result = '';
while(!feof($fp))
{
$result .= fgets($fp, 1024);
}
echo "url body: $result";
fclose($fp);
3. 用file_get_contents函數(shù),以post方式獲取url
?
$data = array(
'foo'='bar',
'baz'='boom',
'site'='',
'name'='nowa magic');
$data = http_build_query($data);
//$postdata = http_build_query($data);
$options = array(
'http' = array(
'method' = 'POST',
'header' = 'Content-type:application/x-www-form-urlencoded',
'content' = $data
//'timeout' = 60 * 60 // 超時時間(單位:s)
)
);
$url = "";
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
echo $result;
4、使用curl庫,使用curl庫之前,可能需要查看一下php.ini是否已經打開了curl擴展
$url = '';
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
echo $file_contents;