首頁 後端開發 php教程 PHP的url传值学习札记

PHP的url传值学习札记

Jun 13, 2016 am 11:02 AM
amp htmlspecialchars post url urlencode

PHP的url传值学习笔记

1. 页面中的源码在显示在浏览器的时候, 浏览器会解释 HTML 转义符号    因此如果要显示特殊字符,如 ‘<’,’>’等,在源码中可以是<>2. PHP在echo进行显示的时候,如果要显示‘<’,’>’可以这样处理echo htmlspecialchars(‘<>’);htmlspecialchars 可以处理以下字符'&' ,'"', ''' , '<' , '>'  #      '&' (ampersand) becomes '&'#      '"' (double quote) becomes '"' when ENT_NOQUOTES is not set.#      ''' (single quote) becomes '&#039;' only when ENT_QUOTES is set.#      '<' (less than) becomes '<'#      '>' (greater than) becomes '>'3. 当要手动构造url的时候的方法 echo "<a href='" . htmlspecialchars("/nextpage.php?stage=23&data=" . urlencode($data)) . "'>\n";但是要把构造的url用于js的跳转,则不能用htmlspecialchars(详情见5.)4. IE,FireFox会对href=”url” 的url进行Un_htmlspecialchars(鼠标移上去后可以在浏览器状态栏看到)也就是因为html会自动认识象"&"这样的实体然后提交的时候还会 进行urlencode()变量然后提交PHP中的含义是:除了<em>-_.</em> 之外的所有非字母数字字符都将被替换成百分号(<em>%</em>)后跟两位十六进制数,空格则编码为加号(<em>+</em>)。#号比较特殊,如果要传输#号,可以在url栏输入%23 或者使用3.的方法?5. 但是在JS中window.location=”url”的url中如果存在"&"这样的字符就不会正常进行跳转了,原因是JS"&"只是把他们看作正常字符而已  但是都会进行urlencode()然后提交(鼠标移上去后可以在浏览器状态栏看到)    所以使用PHP变量在JS中嵌入url地址时要特别注意6. 当提交时,不论是 GET 或者 POST 方法,数据都会被浏览器进行 urlencode 来传输(第5点),并直接被 PHP urldecode。所以最终不需要自己处理任何 urlencoding/urldecoding,全都是自动处理的。7.如果要在浏览器中发送表单或数据给服务器端,使用GET或POST方法都能实现。GET方法是在访问URL时,使用浏览器地址栏来传递值。我们可以在很多网站上看到这类URL串。GET方法方便直观,缺点是访问该网站的用户也可以修改URL串后发送给服务器,如果程序处理得不够好很容易出错,而且GET传递的字符串长度不能超过250个字符,如果超长,浏览器会自动截断,导致数据缺失。另外,GET方法不支持ASCII字符之外的任何字符,比如包含有汉字或其他非 ASCII字符时,需要使用额外的编码操作,虽然有时候浏览器也能自动完成(可以使用url_encode和url_decode函数)。POST方法发送变量数据时,对于用户来说是不透明的,按HTTP协议来说,数据附加于header的头信息中,用户不能随意修改,这对于Web应用程序而言,安全性要好得多,而且使用POST可以发送大体积的数据给Web服务器。因为POST是随HTTP的header信息一起发送的,当触发POST表单提交后,如果用户浏览页面时单击“后退”按钮,浏览器不会自动重发 POST数据。如果用户此时单击“刷新”按钮,将会有“数据已经过期,是否重新提交表单”的提示,这一点不如GET使用方便。使用GET传值时,即便用户使用“后退”或“刷新”按钮,浏览器的URL地址也是仍然存在的。因此,我们在开发中需要根据实际应用灵活选择GET和POST来提交表单数据。值得一提的是,如果在HTML中缺少表单结束标记,那么整个表单是不会触发任何提交动作的。在实际开发时,一些粗心的人会发现单击按钮没有任何反映,其实细心检查一下表单的代码就可以了,有时即使少写了一个HTML字符,浏览器也不会替我们干活的。8.index.php?a=urlencode('+');urldecode( $_GET['a'] ) = ' ';   urlencode 将空格则编码为加号(+)。   rawurlencode将空格替换成百分号(%)后跟两位十六进制数   可以使用rawurlencode()与rawurldecode()来避免这个错误 9.urlencode()返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。此编码与 WWW 表单 POST 数据的编码方式是一样的,同时与 application/x-www-form-urlencoded 的媒体类型编码方式一样。
登入後複製

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1422
52
Laravel 教程
1316
25
PHP教程
1267
29
C# 教程
1239
24
為什麼NameResolutionError(self.host, self, e) from e,怎麼解決 為什麼NameResolutionError(self.host, self, e) from e,怎麼解決 Mar 01, 2024 pm 01:20 PM

報錯的原因NameResolutionError(self.host,self,e)frome是由urllib3函式庫中的例外類型,這個錯誤的原因是DNS解析失敗,也就是說,試圖解析的主機名稱或IP位址無法找到。這可能是由於輸入的URL位址不正確,或DNS伺服器暫時無法使用所導致的。如何解決解決此錯誤的方法可能有以下幾種:檢查輸入的URL地址是否正確,確保它是可訪問的確保DNS伺服器可用,您可以嘗試在命令行中使用"ping"命令來測試DNS伺服器是否可用嘗試使用IP位址而不是主機名稱來存取網站如果是在代理

PHP函數介紹—get_headers(): 取得URL的回應頭訊息 PHP函數介紹—get_headers(): 取得URL的回應頭訊息 Jul 25, 2023 am 09:05 AM

PHP函數介紹—get_headers():取得URL的回應頭資訊概述:在PHP開發中,我們經常需要取得網頁或遠端資源的回應頭資訊。 PHP函數get_headers()能夠方便地取得目標URL的回應頭訊息,並以陣列形式傳回。本文將介紹get_headers()函數的用法,以及提供一些相關的程式碼範例。 get_headers()函數的用法:get_header

html和url的差別是什麼 html和url的差別是什麼 Mar 06, 2024 pm 03:06 PM

區別:1、定義不同,url是是統一資源定位符,而html是超文本標記語言;2、一個html中可以有很多個url,而一個url中只能存在一個html頁面;3、html指的是網頁,而url指的是網站位址。

怎樣透過幾個步驟取得您的 Steam ID? 怎樣透過幾個步驟取得您的 Steam ID? May 08, 2023 pm 11:43 PM

現在許多熱愛遊戲的windows用戶都進入了Steam客戶端,可以搜尋、下載和玩任何好遊戲。但是,許多用戶的個人資料可能具有完全相同的名稱,這使得查找個人資料或甚至將Steam個人資料連結到其他第三方帳戶或加入Steam論壇以共享內容變得困難。為設定檔分配了一個唯一的17位id,它保持不變,用戶無法隨時更改,而用戶名或自訂URL可以更改。無論如何,有些用戶並不知道他們的Steamid,這對於了解這一點非常重要。如果您也不知道如何找到您帳戶的Steamid,請不要驚慌。在這篇文

如何在Java中使用URL編碼和解碼 如何在Java中使用URL編碼和解碼 May 08, 2023 pm 05:46 PM

使用url進行編碼和解碼編碼和解碼的類別java.net.URLDecoder.decode(url,解碼格式)解碼器.解碼方法。轉換成普通字串,URLEncoder.decode(url,編碼格式)將普通字串變成指定格式的字串packagecom.zixue.springbootmybatis.test;importjava.io.UnsupportedEncodingException;importjava.net.URLDecoder;importjava.net. URLEncoder

python requests post如何使用 python requests post如何使用 Apr 29, 2023 pm 04:52 PM

python模擬瀏覽器發送post請求importrequests格式request.postrequest.post(url,data,json,kwargs)#post請求格式request.get(url,params,kwargs)#對比get請求發送post請求傳參分為表單( x-www-form-urlencoded)json(application/json)data參數支援字典格式和字串格式,字典格式用json.dumps()方法把data轉換為合法的json格式字串次方法需要

SpringBoot多controller如何加入URL前綴 SpringBoot多controller如何加入URL前綴 May 12, 2023 pm 06:37 PM

前言在某些情況下,服務的controller中前綴是一致的,例如所有URL的前綴都為/context-path/api/v1,需要為某些URL加上統一的前綴。能想到的處理辦法為修改服務的context-path,在context-path中加上api/v1,這樣修改全域的前綴能夠解決上面的問題,但存在弊端,如果URL存在多個前綴,例如有些URL需要前綴為api/v2,就無法區分了,如果服務中的一些靜態資源不想添加api/v1,也無法區分。下面透過自訂註解的方式實現某些URL前綴的統一添加。一、

java如何發起http請求呼叫post與get接口 java如何發起http請求呼叫post與get接口 May 16, 2023 pm 07:53 PM

一、java調用post介面1、使用URLConnection或HttpURLConnectionjava自帶的,無需下載其他jar包URLConnection方式調用,如果介面回應碼被服務端修改則無法接收到返回報文,只能當回應碼正確時才能接收到回傳publicstaticStringsendPost(Stringurl,Stringparam){OutputStreamWriterout=null;BufferedReaderin=null;StringBuilderresult=newSt

See all articles