请问如何将下面一段 C 语言代码转换成 PHP

2016 年 1 月 1 日
 ZiShuo

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 地址大小写非常敏感。请大神帮忙转换一下。

4717 次点击
所在节点    PHP
26 条回复
iamfredng
2016 年 1 月 1 日
我反复看了下,总觉得这不是 C 语言。。。这是个 Bash 脚本吧。
iamfredng
2016 年 1 月 1 日
艹,真是个 Bash 脚本,难怪我脑内的 C 语言处理器无法解析这段代码。摔
HanSonJ
2016 年 1 月 1 日
@iamfredng 我还一直在想 C 语言什么时候能够 local 定义变量了。。。
liuhaotian
2016 年 1 月 1 日
@HanSonJ 这是一个 function 类型的函数😁
orvice
2016 年 1 月 1 日
还以为是自己 c 语言白学了。。
Kilerd
2016 年 1 月 1 日
又是伸手党!!表示毫无好感。
pynix
2016 年 1 月 1 日
伸手党
mikicomo
2016 年 1 月 1 日
block
gdtv
2016 年 1 月 1 日
php 就是从 C 语言来的,我学了 C 学了 PHP ,居然看不懂楼主的代码,这真的是 C 吗?我读书少,别骗我。
MrZephyrus
2016 年 1 月 2 日
@orvice + 1
leveraging
2016 年 1 月 2 日
大家不要这么深恶意,我来帮楼主翻译。
function php_urlencode($url) {
return urlencode($url);
}
leveraging
2016 年 1 月 2 日
function php_urlencode($url) {
return strtolower(urlencode($url));
}
EmarsXHY
2016 年 1 月 2 日
。。。有点无语,第一语言没搞清楚,第二请说人话=。=
580a388da131
2016 年 1 月 2 日
看起来都是挺基本的东西。
aprikyblue
2016 年 1 月 2 日
我 C 语言白学了
czheo
2016 年 1 月 2 日
我中文白学了
47jm9ozp
2016 年 1 月 2 日
我还以为是 c16 新标准哪来的那么多新用法……
Cynic222
2016 年 1 月 2 日
我还在想哪来的 esac...
wizardforcel
2016 年 1 月 2 日
你需要 strtolower()
ZiShuo
2016 年 1 月 2 日
@iamfredng 是的,是 Bash 语言,我一直认为 Bash 和 C 没区别。菜鸟勿怪!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/247712

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX