下面的转换叫做什么?有没有办法在PHP中从输入的文本框中生成这个源这个过程叫什么?
原来Title here
Description located here
enter
enter
last text
jobdesc =标题+ % d % 0 a % 0 d % 0 adescription +位于+ % d % 0 a % 0 d % 0 aenter % d % 0 a % d % 0 aenter % d % 0 a % 0 d % 0 alast + text& curlsubmit =提交
它是URL编码的,您可以使用:
$encoded = urlencode($input);
除了URL编码之外,您的示例还附加了文本中不存在的&curlsubmit=submit
。
要得到完全相同的输出:
$output = 'jobdesc=' . urlencode($input) . '&curlsubmit=submit';
URL编码是所有浏览器使用的编码查询字符串和表单数据的标准格式。它可以防止像&
这样的特殊字符破坏字符串的键值格式。
更多信息
如果你有你的表单方法标记为GET,你按下提交按钮,然后它会出现在你的url地址。它叫做url编码。
在php中,您可以使用urlencode();
函数将文本更改为这种格式;使用urldecode()
阅读更多关于url编码的内容。
- PHP手册
- w3 RFC
关于RFC
2.1。百分比编码
百分比编码机制用于表示A中的数据八位元组组件,当该八位字节的对应字符不在的分隔符,或在其内部使用组件。百分比编码的八位字节被编码为字符三元组,由百分比字符"%"后面跟着两个组成表示该八位字节数值的十六进制数字。为例如,"%20"是二进制八位字节的百分比编码"00100000" (ABNF: %x20),在US-ASCII中对应空格字符(SP)。第2.4节描述了百分比编码和
pct-encoded = "%" HEXDIG HEXDIG
大写十六进制数字'A'到'F'等价于分别用小写数字‘a’到‘f’。如果有两个uri仅在百分制编码中使用十六进制数字时不同它们是相等的。为了保持一致性,URI生产者和规范化程序应该使用大写十六进制数字表示所有的百分比-编码。