正则表达式转录

发布于 2024-11-17 02:30:29 字数 302 浏览 0 评论 0原文

我必须翻译这个:http://*myurl*/feedback.php?rcode=1307954819&lang=it

http://*myurl*/index.php?option=com_cake&module=lodgings&task=feedback&id=1307954819

有人能帮我吗 :)

编辑:

我必须将其写在 .htaccess 中,所以我需要重写规则。

I have to translate this: http://*myurl*/feedback.php?rcode=1307954819&lang=it

in

http://*myurl*/index.php?option=com_cake&module=lodgings&task=feedback&id=1307954819

Can someone help me ? :)

Edit:

I have to write it in .htaccess so I need rewrite rules.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

轻拂→两袖风尘 2024-11-24 02:30:30

为此,您不需要 RegEx。
您可以使用 str_replace。

$URL='http://myurl/feedback.php?rcode=1307954819&lang=it';

$newURL=str_replace(array('http://myurl/feedback.php','?rcode=','&lang=it'),array('http://myurl/index.php','?option=com_cake&module=lodgings&task=feedback&id=',''),$URL);

You don't need RegEx for this.
You can use str_replace.

$URL='http://myurl/feedback.php?rcode=1307954819&lang=it';

$newURL=str_replace(array('http://myurl/feedback.php','?rcode=','&lang=it'),array('http://myurl/index.php','?option=com_cake&module=lodgings&task=feedback&id=',''),$URL);
若言繁花未落 2024-11-24 02:30:30

不考虑 acount 选项 amd 模块参数:

$url = 'http://*myurl*/feedback.php?rcode=1307954819&lang=it';

echo preg_replace('%^http://([^/]*)/([^.]*)\.php\?rcode=([0-9]*).*$%','http://$1/index.php?option=com_cake&module=lodgings&task=$2&id=$3',$url);

.htaccess 中,它应该是:

RewriteRule ^/([^.]*)\.php\?rcode=([0-9]*).*$ /index.php?option=com_cake&module=lodgings&task=$1&id=$2

Without taking into acount option amd module params:

$url = 'http://*myurl*/feedback.php?rcode=1307954819&lang=it';

echo preg_replace('%^http://([^/]*)/([^.]*)\.php\?rcode=([0-9]*).*$%','http://$1/index.php?option=com_cake&module=lodgings&task=$2&id=$3',$url);

In .htaccess it should be:

RewriteRule ^/([^.]*)\.php\?rcode=([0-9]*).*$ /index.php?option=com_cake&module=lodgings&task=$1&id=$2
岁月流歌 2024-11-24 02:30:30

我的示例是使用 C#(不是 php 开发人员)编写的,但正则表达式模式应该适用于两种语言。

void Main()
{
    string input = @"http://myurl/feedback.php?rcode=1307954819&lang=it";

    Regex pattern = new Regex(".+?&?rcode=([^&]+)");

    string output = pattern.Replace(input, @"http://myurl/index.php?option=com_cake&module=lodgings&task=feedback&id=$1");

    Console.WriteLine(output);
}

My example is in C# (not a php developer), but the regex pattern should work in both languages..

void Main()
{
    string input = @"http://myurl/feedback.php?rcode=1307954819&lang=it";

    Regex pattern = new Regex(".+?&?rcode=([^&]+)");

    string output = pattern.Replace(input, @"http://myurl/index.php?option=com_cake&module=lodgings&task=feedback&id=$1");

    Console.WriteLine(output);
}
儭儭莪哋寶赑 2024-11-24 02:30:29
# activate rewrite engine
RewriteEngine On
# mark / as a root
RewriteBase /

# rewrite feedback.php
RewriteCond %{QUERY_STRING} ^rcode=(\d+)
RewriteRule ^feedback.php$ index.php?option=com_cake&module=lodgings&task=feedback&id=%1 [L]

上面的规则会将 /feedback.php?rcode=1307954819&lang=it 重写为 /index.php?option=com_cake&module=lodgings&task=feedback&id=1307954819 无需更改浏览器地址栏中的 URL。

如果您还需要更改地址栏中的 URL(以进行重定向),请将 [L] 更改为 [R=301,L]

# activate rewrite engine
RewriteEngine On
# mark / as a root
RewriteBase /

# rewrite feedback.php
RewriteCond %{QUERY_STRING} ^rcode=(\d+)
RewriteRule ^feedback.php$ index.php?option=com_cake&module=lodgings&task=feedback&id=%1 [L]

The rule above will rewrite /feedback.php?rcode=1307954819&lang=it into /index.php?option=com_cake&module=lodgings&task=feedback&id=1307954819 without changing URL in address bar of the browser.

If you need to change URL in address bar as well (to make a redirect) then change [L] into [R=301,L]

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文