我怎样才能摆脱这样的变量:
$var1 = "www.game.mysite.com/folder/page.php?var1=1&var2=2";
然后我想以某种方式只获得“page.php”,它被设置为什么?
任何想法如何做到这一点?
我怎样才能摆脱这样的变量:
$var1 = "www.game.mysite.com/folder/page.php?var1=1&var2=2";
然后我想以某种方式只获得“page.php”,它被设置为什么?
任何想法如何做到这一点?
这将使用路径的最后一段。
$var1 = "www.game.mysite.com/folder/page.php?var1=1&var2=2";
$path = parse_url($var1, PHP_URL_PATH);
$path_parts = explode('/', $path);
var_dump($path_parts[count($path_parts) -1]);
输出:
string(8) "page.php"
一些简单的正则表达式会让你摆脱麻烦:
$var1 = "www.game.mysite.com/folder/page.php?var1=1&var2=2";
preg_match('/([a-z]+\.php)/', $var1, $file); // Returns `page.php`
tehlulz 提到了 preg_match 方法,如果您不知道文件扩展名是什么,还有一个 preg_replace 选项。
$pattern = '/(.*)(\/)(.*)(\?)(.*)/';
$replacement = '$3';
$filename = preg_replace($pattern, $replacement, $var1);
有几种方法可以完成你所追求的。
尝试这个
$var1 = "www.game.mysite.com/folder/page.php?var1=fgsd rew1&var2=2";
$reversed_string = strrev($var1);
$pos_of_questionMark = strpos($reversed_string, "?");
$pos_of_first_slash = strpos($reversed_string, "/");
$getfilename = strrev(substr($reversed_string,$pos_of_questionMark+1, $pos_of_first_slash-$pos_of_questionMark-1));
echo $getfilename;