从变量中获取PHP文件?

时间:2012-09-30 00:32:04

标签: php

如何从这样的变量中输出: $var1 = "www.game.mysite.com/folder/page.php?var1=1&var2=2";

然后我想以某种方式只获得“page.php”,它的设置是什么?

任何想法如何做到这一点?

5 个答案:

答案 0 :(得分:4)

我不会使用正则表达式,但是parse_urlbasename

$var1 = "www.game.mysite.com/folder/page.php?var1=1&var2=2";
$parsed = parse_url($var1);
var_dump(basename($parsed['path']));

请参阅codepad上的示例。

答案 1 :(得分:2)

这将使用路径的最后一段。

$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"

答案 2 :(得分:0)

一些简单的正则表达式可以让你摆脱困境:

$var1 = "www.game.mysite.com/folder/page.php?var1=1&var2=2";
preg_match('/([a-z]+\.php)/', $var1, $file); // Returns `page.php`

答案 3 :(得分:0)

tehlulz提到的preg_match方法,或者在您不知道文件扩展名是什么的情况下还有preg_replace选项。

$pattern = '/(.*)(\/)(.*)(\?)(.*)/';
$replacement = '$3';
$filename = preg_replace($pattern, $replacement, $var1);

有几种方法可以实现您的目标。

答案 4 :(得分:0)

试试这个

$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;