> 백엔드 개발 > PHP 튜토리얼 > php正则过滤网址中一个参数,如何如何写

php正则过滤网址中一个参数,如何如何写

WBOY
풀어 주다: 2016-06-13 13:09:31
원래의
893명이 탐색했습니다.

php正则过滤网址中一个参数,请教高手怎么怎么写?
有以下网址:

http://127.0.0.1/c/1.php?ft=x7cj
需过滤成:http://127.0.0.1/c/1.php

http://127.0.0.1/c/1.php?form=post&ft=gy4e
需过滤成:http://127.0.0.1/c/1.php?form=post

http://127.0.0.1/c/1.php?ft=7yd4r&form=post
需过滤成:http://127.0.0.1/c/1.php?form=post



比如用上面三种格式的网址打开以下php文件,如何用正则输出过滤出的效果?

$tjurl="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
//怎么用一句话正则过滤上面三种格式的网址?网址中参数“ft=*****”中的*****不是固定的字母或数字,随机变化的

echo "$tjurl";
 exit;
?>

------解决方案--------------------

PHP code
<?php $str = 'http://127.0.0.1/c/1.php?ft=x7cj

http://127.0.0.1/c/1.php?form=post&ft=gy4e

http://127.0.0.1/c/1.php?ft=7yd4r&form=post';
$str = preg_replace('/[\?&]ft=\w+/','',$str);
var_dump($str);
?>
<br><font color="#e78608">------解决方案--------------------</font><br>
로그인 후 복사
PHP code
 $arr=array(
'http://127.0.0.1/c/1.php?ft=x7cj',
'http://127.0.0.1/c/1.php?form=post&ft=gy4e',
'http://127.0.0.1/c/1.php?ft=7yd4r&form=post'
);

print_r(array_map('foo',$arr));
function foo($url){
   $ar=parse_url($url);

   if(!isset($ar['query'])) return $url;
   
   parse_str($ar['query'],$arr);
   unset($arr['ft']);
   return $ar['scheme'].'://'.$ar['host'].$ar['path'].($arr ? '?'.http_build_query($arr) : '');
}
<br><font color="#e78608">------解决方案--------------------</font><br>
这样写(注释掉后面的$s可测试前面的)<br>$s = 'http://127.0.0.1/c/1.php?seed=add&ft=7yd4r&form=post';<br>$s = 'http://127.0.0.1/c/1.php?ft=x7cj';<br>$s = 'http://127.0.0.1/c/1.php?form=post&ft=gy4e';<br>$s = 'http://127.0.0.1/c/1.php?ft=7yd4r&form=post';<br><br><strong>echo preg_replace('/([?&])ft=[^&]+(&?)/e', '"$2"==""?"":"$1"', $s);</strong><br><br>人家给你弄个数组,只不过是让你测试起来方便些 <div class="clear">
                 
              
              
        
            </div>
로그인 후 복사
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿