火影 发表于 2009-9-17 22:59:30

请教个php语句的写法

我太菜了,搞了半天终于能兼容glype代理了,但是有个问题自己不会写,看别人写的也看不大明白。

需要判断在输入框里输入的网站是否包含http://或https://
如果包含http://或者https://,那么去掉前面的http,用base64加密后提交
如果不包含,则用base64加密后,再在前面添加上Oi8v后提交

应该怎么写啊?
mad.gif
哪位高手来指点一下。。。。。感谢。。。。。。

cpuer 发表于 2009-9-17 23:22:22

等高手的判断语句。

ABC 发表于 2009-9-18 09:48:58

简单的ifelse就行了
sad.gif

gdtv 发表于 2009-9-18 12:15:55

$str=.......;
if(str_len($str,7)=='http://'){
$str=str_replace('http://','',$str);
$str=base64_encode($str);
}elseif(str_len($str,8)=='https://'){
$str=str_replace('https://','',$str);
$str=base64_encode($str);
}else{
$str='Oi8v'.base64_encode($str);
}

cpuer 发表于 2009-9-18 12:50:08

楼主试试吧。

summer1ove 发表于 2009-9-18 18:58:53

把协议名去掉?不需要判断?

cpuer 发表于 2009-9-18 20:16:18

如果包含http://或者https://,那么去掉前面的http,用base64加密后提交
4楼里面有判断了吧。

gdtv 发表于 2009-9-18 21:12:04

我也不明白楼主要实现什么

火影 发表于 2009-9-18 21:38:51

感谢广东卫视
lol.gif

4楼的是不能区分大小写的
我琢磨了一下写成了这样:

$_POST["Url"]=trim($_POST["Url"]);
      if(substr_count($_POST["Url"],'http://')||substr_count($_POST["Url"],'https://')==1 ){
      $_POST["Url"]=str_ireplace('http','',$_POST["Url"]);
}else{
      $_POST["Url"]='://'.$_POST["Url"];
}

这样更省劲了
直接提交出来原始的不带http头的地址
然后下面直接加密送出就可以了

cpuer火影 发表于 2009-9-18 21:39:47


victory.gif

victory.gif
刚发现有个问题
如果是带有两个http就会都被替换了

http://http.google.com
会被替换成://.google.com
还是不严密啊
mad.gif
页: [1] 2
查看完整版本: 请教个php语句的写法