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

2016-01-01 21:17:04 +08:00
 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 地址大小写非常敏感。请大神帮忙转换一下。

4147 次点击
所在节点    PHP
26 条回复
iamfredng
2016-01-01 21:30:04 +08:00
我反复看了下,总觉得这不是 C 语言。。。这是个 Bash 脚本吧。
iamfredng
2016-01-01 21:30:55 +08:00
艹,真是个 Bash 脚本,难怪我脑内的 C 语言处理器无法解析这段代码。摔
HanSonJ
2016-01-01 21:33:52 +08:00
@iamfredng 我还一直在想 C 语言什么时候能够 local 定义变量了。。。
liuhaotian
2016-01-01 21:36:38 +08:00
@HanSonJ 这是一个 function 类型的函数😁
orvice
2016-01-01 23:31:23 +08:00
还以为是自己 c 语言白学了。。
Kilerd
2016-01-01 23:36:21 +08:00
又是伸手党!!表示毫无好感。
pynix
2016-01-01 23:37:22 +08:00
伸手党
mikicomo
2016-01-01 23:42:13 +08:00
block
gdtv
2016-01-01 23:48:28 +08:00
php 就是从 C 语言来的,我学了 C 学了 PHP ,居然看不懂楼主的代码,这真的是 C 吗?我读书少,别骗我。
MrZephyrus
2016-01-02 00:37:49 +08:00
@orvice + 1
vigoss
2016-01-02 02:27:32 +08:00
大家不要这么深恶意,我来帮楼主翻译。
function php_urlencode($url) {
return urlencode($url);
}
vigoss
2016-01-02 02:28:58 +08:00
function php_urlencode($url) {
return strtolower(urlencode($url));
}
EmarsXHY
2016-01-02 03:35:12 +08:00
。。。有点无语,第一语言没搞清楚,第二请说人话=。=
580a388da131
2016-01-02 06:47:24 +08:00
看起来都是挺基本的东西。
aprikyblue
2016-01-02 08:29:34 +08:00
我 C 语言白学了
czheo
2016-01-02 09:58:14 +08:00
我中文白学了
ooxxcc
2016-01-02 10:34:53 +08:00
我还以为是 c16 新标准哪来的那么多新用法……
Cynic222
2016-01-02 10:40:59 +08:00
我还在想哪来的 esac...
wizardforcel
2016-01-02 21:57:15 +08:00
你需要 strtolower()
ZiShuo
2016-01-02 22:00:28 +08:00
@iamfredng 是的,是 Bash 语言,我一直认为 Bash 和 C 没区别。菜鸟勿怪!

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

https://www.v2ex.com/t/247712

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

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

© 2021 V2EX