Heim > Backend-Entwicklung > PHP-Tutorial > php正则过滤网址中一个参数,如何如何写

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

WBOY
Freigeben: 2016-06-13 13:09:31
Original
893 Leute haben es durchsucht

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>
Nach dem Login kopieren
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>
Nach dem Login kopieren
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage