2013-09-30 75 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);