2013-09-30 52 views
-3

的PHP替代是否有任何PHP方法做:JavaScript的pop()方法

var filename = $_POST["filename"]; 
filename = filename.split(".").pop(); 

我如何可以做同样的事情上面在PHP?

+0

'array_pop()'也许? –

+2

像这样的问题应该关闭,如果人们不打扰像“PHP数组弹出”这样的Google术语。 – Mark

+0

参见http://php.net/manual/en/function.explode.php和http://php.net/manual/en/function.explode.php –

回答

3

也许这样的事情?

$filetype = array_pop(explode('.',$filename)); 

它会生成一条Only variables should be passed by reference通知。如果你想摆脱这一点,你需要:

$fileparts = explode('.',$filename); 
$filetype = array_pop($fileparts); 

然而,最好的方式来获得文件的扩展名是使用pathinfo()

$filetype = pathinfo($filename, PATHINFO_EXTENSION); 
+0

'pathinfo()'只是给了我“。 “ –

+0

@MohammadAreebSiddiqui:什么'var_dump($ filename);'输出? –

+0

看不到...... –

1

在PHP中,你可能不需要转换为数组和弹出;获取最后一个字符的位置,然后获取字符串的其余部分。从http://davidwalsh.name/php-file-extension

substr(strrchr($file_name,'.'),1); 
1

你可以做unset($filename[count($filename) - 1]);。这将删除数组中的最后一个元素。

1

你会想这样做:

$filename = $_POST['filename']; 
$file_arr = explode(".",$filename); // may need to escape '.' here, can't remember 
$filename = array_pop($file_arr);