私は次の2つの文字列を持っています:
$str='http://website.com/abc/?var=abc';
$str='http://website.com/abc/?xvar=123&var=xyz';
PHPを使用して「?var =」または「&var=」の前に$strをすべてに変更したいと思います。
たとえば、2つの例を考えると、$strは次のように変換されます。
$str='http://website.com/abc/';
$str='http://website.com/abc/?abc=123';
ありがとうございました
以下のソリューションがテストされました。
<?php
$str='http://website.com';
echo('string-'.$str.'<br>');
echo('opt1-'.opt1($str).'<br>');
echo('opt2-'.opt2($str).'<br>');
$str='http://website.com/';
echo('string-'.$str.'<br>');
echo('opt1-'.opt1($str).'<br>');
echo('opt2-'.opt2($str).'<br>');
$str='http://website.com/abc';
echo('string-'.$str.'<br>');
echo('opt1-'.opt1($str).'<br>');
echo('opt2-'.opt2($str).'<br>');
$str='http://website.com/abc/';
echo('string-'.$str.'<br>');
echo('opt1-'.opt1($str).'<br>');
echo('opt2-'.opt2($str).'<br>');
$str='http://website.com/abc/?var=abc';
echo('string-'.$str.'<br>');
echo('opt1-'.opt1($str).'<br>');
echo('opt2-'.opt2($str).'<br>');
$str='http://website.com/abc/?xvar=123&var=xyz';
echo('string-'.$str.'<br>');
echo('opt1-'.opt1($str).'<br>');
echo('opt2-'.opt2($str).'<br>');
function opt1($str) {
return preg_replace('/[?&]var=.*$/', '', $str);
}
function opt2($str) {
preg_match('/(.*)[\?\&]var=/',$str2,$m);
return $m[1];
}
?>