繁体   English   中英

如果index.php之后&存在,则不要替换链接?a = 2

[英]Don't replace link if & exist after index.php?a=2

我需要替换链接index.php?a=2 ,但是如果a=2之后有& ,则不要替换它。 index.php?a=2 <- replace index.php?a=2&b=3 <- don't replace

使用PHPpreg_replace()

我试过使用此:

preg_replace('^index\.php\?a=([0-9]+)(?!amp;)^', 'home', 'index.php?a=2');
preg_replace('^index\.php\?a=([0-9]+)(?!amp;)^', 'home', 'index.php?a=2&b=3');
preg_replace('^index\.php\?a=([0-9]+)(?!&)^', 'home', 'index.php?a=2');
preg_replace('^index\.php\?a=([0-9]+)(?!&)^', 'home', 'index.php?a=2&b=3');

我正在使用的:

preg_replace('^(\/*)index\.php\?a=([0-9]+)(?!&)^e', "a($2)", 'index.php?a=2');

function a($id) {
  // Getting name from mysql...
  return '/a$id_$name';
}

它的工作与此: index.php?a=2&b0 ,但与index.php?a=10&b=0无关。

PHP脚本:

<?php
print preg_replace('/index\.php\?a=[0-9]+(?!&)/', 'home', 'index.php?a=2');
print "\n";
print preg_replace('/index\.php\?a=[0-9]+(?!&)/', 'home', 'index.php?a=2&b=3'); 
?>

输出:

home
index.php?a=2&b=3

此处测试代码。

'/index\.php\?a=[^&]+(?!&)/'
'/index\.php\?a=\d+(?!\s*&)/'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM