亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 PHP 中為重寫規則構建正則表達式?

如何在 PHP 中為重寫規則構建正則表達式?

PHP
收到一只叮咚 2023-06-18 15:58:25
我目前正在嘗試為 WordPress 中的 url 編寫重寫規則。原始網址如下所示:http://localhost/download/d0RqYU8xek9JOXBsQmJrRGpldWF2QT09/?selected_files%5B0%5D=TURUWEdaWWNtS1ZOd2NSY0MybThCQT09&selected_files%5B1%5D=cWhFVEtlOENNM0VwNmlrUlBmOVF1UT09之后的第一個值/download/是特定文件存儲的唯一標識符。之后,我添加了一系列文件。在 WordPress 中,我現在想為此請求編寫一個重寫 URL,以便我可以在后端處理它。為此,我需要一個特定的正則表達式來識別請求并返回匹配項以構建我的重寫 url:public function filter_rewrite_rules_array( $rules ): array {    $new_rules['download/([0-9][a-z][A-Z]+)/.......'] = admin_url( 'admin-ajax.php' ) . '?download=$matches[1]&selected_files=$matches[2]';    return array_merge( $rules, $new_rules );}關鍵是我無法完成正則表達式....有人可以幫我解決這個問題嗎?即使是第一場比賽也不行。更新:我期待這個 URL 結果:http://localhost/admin-ajax.php?download=d0RqYU8xek9JOXBsQmJrRGpldWF2QT09&selected_files%5B0%5D=TURUWEdaWWNtS1ZOd2NSY0MybThCQT09&selected_files%5B1%5D=cWhFVEtlOENNM0VwNmlrUlBmOVF1UT09正如我剛才看到的——請求可以有多個文件 ID。所以不知道如何使用正則表達式完成此操作。這可能嗎?
查看完整描述

1 回答

?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

您可以嘗試:

.*?\/download\/(.*?)\/\?(.*)

上述正則表達式的解釋:

.*?-懶惰地匹配之前的一切\download。

\/download\/-/download/逐字匹配。

(.*?)- 表示匹配您需要的唯一 ID 的捕獲組,即在/? 懶惰之前匹配任何內容。

(.*)- 表示匹配 url 其余部分的第二個捕獲組。

替換零件:由于零件http://localhost/admin-ajax.php?download=是靜態的;您可以將它與捕獲的組一起使用,即http://localhost/admin-ajax.php?download=$1&$2。

http://img1.sycdn.imooc.com//648eb93d0001233806520104.jpg

您可以在此處找到上述正則表達式的演示。


查看完整回答
反對 回復 2023-06-18
  • 1 回答
  • 0 關注
  • 110 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號