【问题标题】:How can I find specific word in URL and change or delete it?如何在 URL 中找到特定单词并更改或删除它?
【发布时间】:2012-12-04 07:53:10
【问题描述】:

喜欢这个网址;

/?action=proc&pr_id=5

我想找到“pr_id”并将其更改为“pr” => /?action=proc&pr=5;

但是如果网址是这样的;

/?action=proc&pr_id=5&pr=5

我想再次找到“pr_id”并删除它 => /?action=proc&pr=5

我得到网址

$url = $_SERVER['REQUEST_URI']; 

并想用 preg_match 更改它,但是我该如何为此编写正则表达式?

【问题讨论】:

  • 您要重定向吗?或者出于其他原因编辑字符串? apache mod_rewrite 会是一个选项吗? (网络服务器中的 URL 操作)
  • 为什么要使用正则表达式?您可以通过简单的搜索和替换来实现这一点。
  • 如果您是从$_SERVER["REQUEST_URI"] 获得的,那么我认为这些参数也可以从$_GET 获得...

标签: php regex url preg-replace preg-match


【解决方案1】:

你可以使用 $_GET 来实现你想要的。

$get_values = $_GET;

if (isset($get_values['pr_id'])) {
    if (!isset($get_values['pr']) {
        $get_values['pr'] = $get_values['pr_id'];
    } 
    unset($get_values['pr_id']);
}

然后重构 URI。

【讨论】:

    【解决方案2】:

    只有正则表达式,只有核心!

    $url = preg_replace('%(&|\?)pr=.?(&|$)%', '$1', $url);
    $url = preg_replace('%(&|\?)pr_id=%', '$1pr=', $url);
    $url = trim($url, '&');
    

    【讨论】:

      【解决方案3】:

      如果你想从一个 URL 重定向到另一个你可以使用 Apache mod_rewrite 模块。

      转到您的 Apache 配置文件 httpd.conf,确保模块已加载

      LoadModule rewrite_module modules/mod_rewrite.so
      

      然后在您的虚拟主机或 .htaccess(如果已打开)中添加下一行:

      RewriteEngine On
      RewriteRule ^/?action=([a-z]+)&pr_id=([0-9]+)$ /?action$1&pr=$2 [L]
      

      如果您想访问传入$_SERVER['REQUEST_URI'] 的变量,请使用$_GET 变量。

      <?
      print_r($_GET); // prints the array of all variables coming in GET request
      print $_GET['action']; // prints your action variable
      print $_GET['pr_id']; // prints your pr_id variable
      ?>
      

      【讨论】:

        【解决方案4】:

        试试这个。

        您正在使用 str_replace() 函数替换字符串,例如:

        $url = str_replace('pr_id','pr',$_SERVER['REQUEST_URI']);
        echo $url;
        

        【讨论】:

          猜你喜欢
          • 2019-08-06
          • 1970-01-01
          • 2017-04-26
          • 1970-01-01
          • 2022-01-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-10-01
          相关资源
          最近更新 更多