function urlencode()
{
local string="$1";
local strlen=${#string};
local encoded="";
for (( pos=0 ; pos<strlen ; pos++ )); do
c=${string:$pos:1}
case "$c" in
[-_.~a-zA-Z0-9] ) o="${c}" ;;
* ) printf -v o '%%%02x' "'$c"
esac
encoded+="${o}";
done
echo "${encoded}";
}
以上是 C 语言的经过编码后的特殊符号内容是小写的, PHP 的 urlencode 编码后特殊字符串是大小的,那个变态的网站对特殊字符 url 地址大小写非常敏感。请大神帮忙转换一下。
1
iamfredng 2016-01-01 21:30:04 +08:00
我反复看了下,总觉得这不是 C 语言。。。这是个 Bash 脚本吧。
|
2
iamfredng 2016-01-01 21:30:55 +08:00
艹,真是个 Bash 脚本,难怪我脑内的 C 语言处理器无法解析这段代码。摔
|
4
liuhaotian 2016-01-01 21:36:38 +08:00
@HanSonJ 这是一个 function 类型的函数😁
|
5
orvice 2016-01-01 23:31:23 +08:00
还以为是自己 c 语言白学了。。
|
6
Kilerd 2016-01-01 23:36:21 +08:00
又是伸手党!!表示毫无好感。
|
7
pynix 2016-01-01 23:37:22 +08:00
伸手党
|
8
mikicomo 2016-01-01 23:42:13 +08:00 1
block
|
9
gdtv 2016-01-01 23:48:28 +08:00
php 就是从 C 语言来的,我学了 C 学了 PHP ,居然看不懂楼主的代码,这真的是 C 吗?我读书少,别骗我。
|
10
MrZephyrus 2016-01-02 00:37:49 +08:00
@orvice + 1
|
11
vigoss 2016-01-02 02:27:32 +08:00
大家不要这么深恶意,我来帮楼主翻译。
function php_urlencode($url) { return urlencode($url); } |
12
vigoss 2016-01-02 02:28:58 +08:00
function php_urlencode($url) {
return strtolower(urlencode($url)); } |
13
EmarsXHY 2016-01-02 03:35:12 +08:00
。。。有点无语,第一语言没搞清楚,第二请说人话=。=
|
14
580a388da131 2016-01-02 06:47:24 +08:00
看起来都是挺基本的东西。
|
15
aprikyblue 2016-01-02 08:29:34 +08:00
我 C 语言白学了
|
16
czheo 2016-01-02 09:58:14 +08:00
我中文白学了
|
17
ooxxcc 2016-01-02 10:34:53 +08:00
我还以为是 c16 新标准哪来的那么多新用法……
|
18
Cynic222 2016-01-02 10:40:59 +08:00 via iPhone
我还在想哪来的 esac...
|
19
wizardforcel 2016-01-02 21:57:15 +08:00 via Android
你需要 strtolower()
|