⑴ php如何獲取網址中的參數
比如有一個網址為
http://域名/goods.php?u=59&id=24#pinglun
我想得到這個id值
可以用正則,也可以用php函數解析到數組中
用正則可以這樣
preg_match('/id=(d+)/',$_SERVER["REQUEST_URI"],$m);//$_SERVER 這個表示當前網址url
print_r($m[1]);exit;
或者用parse_url()及parse_str()函數
$cur_q=parse_url($_SERVER["REQUEST_URI"],PHP_URL_QUERY);
parse_str($cur_q,$myArray);
print_r($myArray["id"]);exit;
拓展資料
PHP(外文名:PHP: Hypertext Preprocessor,中文名:「超文本預處理器」)是一種通用開源腳本語言。語法吸收了C語言、java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。PHP 獨特的語法混合了C、Java、Perl以及PHP自創的語法。它可以比CGI或者Perl更快速地執行動態網頁。用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML(標准通用標記語言下的一個應用)文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多;PHP還可以執行編譯後代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。
PHP的特性包括:
1. PHP 獨特的語法混合了 C、Java、Perl 以及 PHP 自創新的語法。
2. PHP可以比CGI或者Perl更快速的執行動態網頁——動態頁面方面,與其他的編程語言相比,
PHP是將程序嵌入到HTML文檔中去執行,執行效率比完全生成htmL標記的CGI要高許多;
PHP具有非常強大的功能,所有的CGI的功能PHP都能實現。
3. PHP支持幾乎所有流行的資料庫以及操作系統。
4. 最重要的是PHP可以用C、C++進行程序的擴展!
參考資料:網路 PHP
⑵ 在c語言寫的cgi程序中如何獲取URL傳遞的參數
cgi程序 處於伺服器端。傳遞的參數來自客戶端,即 瀏覽器端 的 form。 form里定義了哪些 參數,傳遞時,將傳遞 一串 一對一對 的 參數名=參數值 數據。
c語言 只要分析這段 字元串,按標點符號分隔即可得。
另外,與伺服器有關的 瀏覽器端環境變數等 參數名稱,你要查伺服器的幫助文件,例如: REMOTE_HOST,REMOTE_ADDR,REMOTE_USER,REMOTE_IDENT,CONTENT_TYPE。 也是 參數名 數據值 這種數據對。
(cgi interface 程序 用 perl 腳本 比 用 c 簡單 易寫。)
⑶ 如何在WebBrowser控制項中獲取post參數
如何在WebBrowser控制項中獲取post參數?就像獲取cookie一樣。
WebBrowser本身有沒有辦法?
如果沒有,能不能通過其它辦法?就像httplook,HttpSniffer一樣截取http協議包,然後分析,有
沒有這方面的例子?估計要用到API,但不知道怎麼樣實現的。
網頁與應用程序的交互不外乎是網頁上點擊某鏈接,或通過其它途徑,比如表單提交等,使瀏覽器
導航至新的鏈接,所以我通過BeforeNavigate2這個事件來,該事件有flags、headers、postData、
targetFrameName、uRL等屬性,足夠我們進行處理。這樣我們程序就好像一個WebServer,可以處理
網頁上的鏈接、提交的表單等等。然後把使瀏覽器導航至處理後產生的結果網頁。
又在網上看到有人用System.Runtime.InteropServices.Expando.IExpando:
mshtml.HTMLDocumentClass doc2=(mshtml.HTMLDocumentClass)webBrowser.Document;
System.Runtime.InteropServices.Expando.IExpando ex=
(System.Runtime.InteropServices.Expando.IExpando)doc2;
System.Reflection.PropertyInfo piform1=ex.AddProperty( "Form1 ");
piform1.SetValue(doc2,this,null);
這樣,在網頁中的document.Form1就是這個WinForm的Control了。你可以用腳本來調用Form1!
這也不失為一個極妙的方法。
----------------------------
如何獲得webBrowser中POST的數據
http://msdn2.microsoft.com/zh-cn/library/system.windows.forms.webbrowser.document.aspx
//引用 shdocvw.dll
(this.webbrowser1.ActiveXInstance as SHDocVw.WebBrowser).NewWindow2 += new
SHDocVw.DWebBrowserEvents2_NewWindow2EventHandler(NewWindow2);
----------------------------------------
System.Web.HttpUtility.UrlEncode(viewState);
// 將提交的字元串數據轉換成位元組數組
byte[] postData = Encoding.ASCII.GetBytes(postString);
byte[] bytes = Encoding.Default.GetBytes(Parameters);
----------------------------------------
HttpWebRequest發送自定義POST請求
平時用瀏覽器看網頁的時候,點擊一下submit按鈕的時候其實就是給伺服器發送了一個POST請求。
但是如何在自己的C#程序裡面實現類似的功能呢?本文給出了一個簡單的範例,可以實現類似的和
web server之間的POST通訊。通過程序發送POST的過程如下所示:
1. 創建httpWebRequest對象
HttpWebRequest不能直接通過new來創建,只能通過WebRequest.Create(url)的方式來獲得。
WebRequest是獲得一些列應用層協議對象的一個統一的入口(工廠模式),它根據參數的協議來確
定最終創建的對象類型。所以我們的程序裡面有一個對返回對象的類型進行測試的過程。
2. 初始化HttpWebRequest對象
這個過程提供一些http請求常用的屬性:agentstring,contenttype等其中agentstring比較有意思
,它是用來識別你用的瀏覽器名字的,通過設置這個屬性你可以欺騙伺服器你是一個IE,firefox甚
至是mac裡面的safari。很多認真設計的網站都會根據這個值來返回對用戶瀏覽器特別優化過的代碼
。
3. 附加要POST給伺服器的數據到HttpWebRequest對象
附加POST數據的過程比較特殊,它並沒有提供一個屬性給用戶存取,需要寫入HttpWebRequest對象
提供的一個stream裡面。
4. 讀取伺服器的返回信息
讀取伺服器返回的時候,要注意返回數據的encoding。如果我們提供的解碼類型不對會造成亂碼。
比較常見的是utf-8和gb2312之間的混淆,據我測試,國內的主機一般都是gb2312編碼的。一般設計
良好的網站會把它編碼的方式放在返回的http header裡面,但是也有不少網站根本沒有,我們只能
通過一個對返回二進制值的統計方法來確定它的編碼方式。
------------------------------------------
基於HTTP協議的客戶/伺服器模式的信息交換過程,它分四個過程:建立連接、發送請求信息、發送
響應信息、關閉連接。這就好像上面的例子,我們電話訂貨的全過程。
HTTP協議採用了請求/響應模型。客戶端向伺服器發送一個請求,請求頭包含請求的方法、URI、協
議版本、以及包含請求修飾符、客戶信息和內容的類似於MIME的消息結構。伺服器以一個狀態行作
為響應,相應的內容包括消息協議的版本,成功或者錯誤編碼加上包含伺服器信息、實體元信息以
及可能的實體內容。
---------------------------------
POP3(Post Office Protocol 3)即郵局協議的第3個版本,它規定怎樣將個人計算機連接到Internet
的郵件伺服器和下載電子郵件的電子協議。它是網際網路電子郵件的第一個離線協議標准,POP3允許用
戶從伺服器上把郵件存儲到本地主機(即自己的計算機)上,同時刪除保存在郵件伺服器上的郵件,
而POP3伺服器則是遵循POP3協議的接收郵件伺服器,用來接收電子郵件的。
pop3是接收電子郵件協議,屬於TCP/IP協議族中的成員。 smtp是發送電子郵件協議。 當你使用
Email時就離不開他們
⑷ c# 中用什麼函數可以獲取瀏覽器向伺服器發送的數據
比如你a.aspx裡面有個TextBox1這個控制項,該頁面post到b.aspx,則b.aspx里可以
string str1 = Request.Form["TextBox1"];
也可以string str1 = Request.Params["TextBox1"];
獲得a.aspx里TextBox1的值.
再比如你a.aspx頁面有個參數a.aspx?UserId=admin,使用get的方法提交到b.aspx則b.aspx里可以
string str2 = Request.QueryString["UserId"];
也可以string str2 = Request.Params["UserId"];
獲得a.aspx里UserId傳遞來的值.
所以無論怎麼, 都可以用string str = Request.Params["xxxx"];來獲得前面post或者get的參數
⑸ 如何在頁面和伺服器間傳值
樓主說的是怎麼在頁面和伺服器之間傳值,一個個都說ajax,是,沒錯,你們都學過很長時間的web編程了,用ajax進行非同步通信貌似很火,但是樓主很顯然是說基礎的傳值,你們這樣不就是顯擺么?
lymeng520更搞笑,到網上摘了點ajax只是就來答題了!!
既然樓主是來java板塊,那麼我說下jsp,servlet等基礎傳值方法。
比如你的一個頁面(html,jsp啊什麼的)上要在人點擊一個按鈕之後將輸入的信息傳給後台,那麼首先要一個表單Form.如<form id="xxx" name="xxx" action="action.jsp">這個意思就是後台處理程序是action.jsp這個文件,當然了,也可以是servlet。用一個form包含一個提交按鈕,那麼點擊這個按鈕之後就會自動將他所屬於的form提交。
如:
<form id="xxx" name="xxx" action="action.jsp">
<!-- 這里放一些你的信息輸入欄,比如輸入名字啊什麼的-->
<input type="text" name="userName" id="userName"><!--這里要用戶輸入一些名字信息-->
<input type="submit" value="提交">
</form>
這就是一個最最基礎的傳值給後台的代碼片段。
你在action.jsp中就可以用request.getParameter("userName");來獲取別人填寫的名字信息.userName就是指<input type="text" name="userName" id="userName">中的name屬性的值,用request.getParameter("userName");就是獲得了這個文本框內的東西了。
另一種常見方式就是session之間傳值,比如你一個jsp頁面中來個session.setAttribute("a",new String("aaa")),那麼當這個jsp頁面提交給後台處理程序(可能是一個jsp或一個servlet程序),那麼再後台程序裡面就可以用String aa=session.getAttribute("a").toString();來將之前那個Jsp頁面中所設定的屬性a的值"aaa"獲取並賦給後台程序中定義的變數aa中。
當然,以上都是很基礎的傳遞方式,樓主會了這些再看看ajax來進行非同步通信那樣才好些,如果什麼都還不會就直接搞ajax那樣不好。