我正在尝试更改包含当前网址的字符串中的值。我想要得到像
这样的东西http://myurl.com/test/begin.php?req=&srclang=english&destlang=english&service=MyMemory
看起来像
http://myurl.com/test/end.php?req=&srclang=english&destlang=english&service=MyMemory
替换begin.php
end.php
。
我需要将end.php
存储在变量中,以便它可以更改,但begin.php
可以是静态字符串。
我尝试了这个,但它不起作用:
$endURL = 'end.php';
$beginURL = 'begin.php';
$newURL = str_ireplace($beginURL,$endURL,$url);
编辑: 另外,如果我想替换
http://myurl.com/begin.php?req=&srclang=english&destlang=english&service=MyMemory
与
http://newsite.com/end.php?req=&srclang=english&destlang=english&service=MyMemory
然后我该怎么做呢?
答案 0 :(得分:1)
假设您要替换网址的脚本文件名,可以使用以下内容:
<?php
$endURL = 'end.php';
$url ="http://myurl.com/test/begin.php?req=&srclang=english&destlang=english&service=MyMemory";
$pattern = '/(.+)\/([^?\/]+)\?(.+)/';
$replacement = '${1}/'.$endURL.'?${3}';
$newURL = preg_replace($pattern , $replacement, $url);
echo "url : $url <br>";
echo "newURL : $newURL <br>";
?>
答案 1 :(得分:0)
你希望他们如何从beigin.php获得end.php?好像你可以将FORM提交给end.php并通过POST或GET变量传递变量。
更改用户所在页面(end.php,begin.php)的唯一方法是将它们链接到该页面的另一个页面,这需要刷新页面。
答案 2 :(得分:0)
我最近为此制作了一个PHP文件,它最终看起来像这样:
$vars = $_SERVER["QUERY_STRING"];
$filename = $_SERVER["PHP_SELF"];
$filename = substr($filename, 4);
// for me substr removed 'abc/' in the beginning of the string, you can of course adjust this variable, this is the "end.php"-variable for you.
if (strlen($vars) > 0) $vars = '?' . $vars;
$resultURL = "http://somewhere.com" . $filename . $vars;