urlencode urldecode
1、urlencode()函数原理就是首先把中文字符转换为十六进制,然后
在每个字符前面加一个标识符%。 urldecode()函数与urlencode()函
数原理相反,用于解码已编码的 URL 字符串,其原理就是把十六进
制字符串转换为中文字符
2、使用场景: 公司项目(搜索条件的数据传输,从一个页面到另外
一个页面): //serialize将数组转化为字符串,不用implode是因为有
关联数组,implode处理关联数组会出错,
urlencode是保证将%等特殊符号原样传输 v_set('where', urlencode($rs['where'])); v_set('args', urlencode(serialize($rs['args']))); v_set('order', urlencode(serialize($rs['order'])));
(1)防止中文乱码及特殊符号乱码,比如%77%78%这一字符串在传输时就会乱码,
所以需要用urlencode进行特殊处理
(2)回調地址,比如: 例如一個接口,你傳送過去時,需要帶上你這邊的回調地址,也是個url.
這樣你不能url+url傳送,需要一個urlencode把回調地址編碼,防止發生問題. 例如:微信的一
個接口 https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE
&state=STATE#wechat_redirect REDIRECT_URI 這裡應該填你的服務器回調地址.正常寫法如 http://api.baidu.com/callback.php 那麼生成的接口就是 https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=http://api.baidu.com/callback.php&response_type=code&scope=SCOPE&state=STATE#wechat_redirect 這樣訪問肯定出問題... 那麼http://api.baidu.com/callback.php 這個回調地址,就要urlencode后再放到地址中發送. https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=http%3A%2F%2Fapi.baidu.com%2Fcallback.php&response_type=code&scope=SCOPE&state=STATE#wechat_redirect 這樣傳就沒問題了! 3、注意事项:大部分(99%)的浏览器都会对传过来的值进行urlencode,同时$_GET、$_REQUEST这些都会自动用urldecode解析浏览器传过来的值
(3) string urlencode ( string str)
返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进
制数。这是在 RFC 1738 中描述的编码,是为了保护原义字符以免其被解释为特殊的 URL 定界符,同时
保护 URL 格式以免其被传输媒体(像一些邮件系统)使用字符转换时弄乱。例如,如果你想在 FTP 的
URL 中包含密码:
例子 1. rawurlencode() 示例 1
复制代码 代码如下:
<?php
echo '<a href="ftp://user:', rawurlencode('foo @+%/'),
'@ftp.my.com/x.txt">';
?>
或者,如果你想通过 URL 的 PATH_INFO 构成部分去传递信息:
例子 2. rawurlencode() 示例 2
复制代码 代码如下:
<?php
echo '<a href="http://x.com/department_list_script/',
rawurlencode('sales and marketing/Miami'), '">';
?>
urlencode urldecode的更多相关文章
- 终端命令对字符串进行sha1、md5、base64、urlencode/urldecode
sha1.md5.base64 mac $ echo -n foo|shasum 0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33 - $ 2c26b46b68ffc6 ...
- c# UrlEncode,UrlDecode
用 C# winform 处理 utf-8,gb2312编码转换方法 首先,在项目属性 的 应用程序——目标框架中,选择 .NET Framework 4 然后再添加引用——.NET 中选择 ...
- 关于URLEnCode,URLDeCode,Base64,公钥私钥
1.Base64非常适合http.mime协议,所以在一些类似webservice中可以用Base64. 用法如下:传出去之前先 Convert.ToBase64String(encryptedByt ...
- 【原创】c# Winform 使用 web 的UrlEncode/UrlDecode 方法
1.先 右键引用,添加 System.Web 数据集 2.语句如下 string s= System.Web.HttpUtility.UrlEncode("123", System ...
- python中Url链接编码处理(urlencode,urldecode)
做完了flask-web应用,这几天想用爬虫做个好玩的电影链接整合器,平时找电影都是在dytt或者dy2018之类的网站,在用dytt搜索电影<美国队长时>,发现他的搜索链接是这样的:ht ...
- lua urlencode urldecode URL编码
URL编码其实就是对一些字符转义为%加上该字符对应ASCII码的二位十六进制形式. 如: 字符 特殊字符的含义 URL编码 # 用来标志特定的文档位置 % % 对特殊字符进行编码 % & 分隔 ...
- Objective-C urlEncode urlDecode
@interface NSString (stringByDecodingURLFormat) - (NSString *)stringByDecodingURLFormat; - (NSString ...
- Ajax入门(三)
get和post请求 1,get方式: 在url地址后面以请求字符串(传递的get参数信息)形式传递数据. 例: aj.open('get','./03.php?name=3tu'); 在传递特 ...
- R爬虫知识点
>>如何用 R 模仿浏览器的行为? GET / POST URLencode / URLdecode (破解中文網址的祕密) header & cookie 如何突破使用 cook ...
随机推荐
- 基于VMware模拟实现远程主机网络通信
基于VMware模拟实现远程主机网络通信 目的: 基于VMware软件,模拟实现不同网段的两主机,通过路由器进行通信.两主机host A和host B分别处于VMnet6网络和VMnet7网络,都属于 ...
- python-前20天的着重知识点
1.CPU存在两种工作状态:一种是内核态,操作系统在运行--可以操作硬件: 另一种是用户态,是应用软件在运行--不可以操作硬件. 应用软件要控制硬件,就要从用户态切换成内核态 2.多道技术:(多道指的 ...
- flask-后台布局页面搭建4
1. 搭建后台页面 5.1管理员登录 步骤:1.在admin视图中导入from flask import render_template,redirect,url_for.并写入一下代码. #登录 ...
- Notes for GGplot2: Getting started with ggplot2
Alpha-ma 2016/10/7 1 Introduction of GGplot2 ggplot2 is an R package for producing statistical, or d ...
- python中的ConfigParser模块
1.简介 我们经常需要使用配置文件,例如.conf和.ini等类型,使用ConfigPaser模块可以对配置文件进行操作. 2.示例 现有配置文件test.ini,其内容如下: [section_a] ...
- 字符序列(characts)
字符序列(characts) 问题描述: 从三个元素的集合[A,B,C]中选取元素生成一个N 个字符组成的序列,使得没有两个相邻的 子序列(子序列长度=2)相同,例:N=5 时ABCBA 是合格的,而 ...
- Django信息安全相关之CSRF和XSS
什么是xss攻击 xss攻击:黑客把恶意的JS脚本提交到后端,后端把恶意脚本渲染显示出来 什么是CSRF? 1.你登录建行官网后 你的浏览器就保存了建行网站的cokie,(如果不关闭这个页面c ...
- MySQL修改版本号教程
处理扫描器扫出的漏洞,基本有四种方法:一是升级软件包到新版本(包括打补丁和整个替换升级),二是修改banner配置项(包括禁用banner和修改banner内容),三是添加白名单(包括主机防火墙和软件 ...
- PHP隐藏版本号教程
PHP本身并不启监听服务,所以预防扫描器扫描通过版本号判断漏洞,我们要隐藏的是http头处的版本号,而不是隐藏系统命令行处的版本号. 1.查看当前php版本号 访问一当前服务中的任意页面,截取响应数据 ...
- linux git:fatal: HTTP request failed
问题 问题的出现比较奇怪 我一台电脑 git clone 没问题 另外一台电脑 git clone 有问题 解决 yum update nss nss-util nspr 参考 https: ...