ホームページ >バックエンド開発 >PHPチュートリアル >アップロードされたファイルの形式を決定するこの機能をどう説明すればよいでしょうか?
彼の各文の意味がまだ理解できません?
function f_postfix($f_type,$f_upfiles){ $is_pass = false; $tmp_upfiles = split("\.",$f_upfiles); $tmp_num = count($tmp_upfiles); for($num = 0; $num < count($f_type);$num++){ if(strtolower($tmp_upfiles[$tmp_num - 1]) == $f_type["$num"]) $is_pass = $f_type["$num"]; } return $is_pass;}
$f_type とは何ですか?関数のパラメータが何を意味するのかわからないので、関数を文字通りに分析することしかできません。
$is_pass = false;//宣言トラバーサル
$tmp_upfiles = split(".",$f_upfiles);//配列の文字列切り取り
$tmp_num = count($tmp_upfiles);//同じレベルの配列の数
for( $num = 0; $num < count($f_type);$num++){// 配列を走査します
if(strto lower($tmp_upfiles[$tmp_num - 1]) == $f_type["$num"] )//使用 - 使用の使用 - $ tmp_upfiles = split( "、$ f_upfiles); //入力ファイル名(おそらくパス)を"
$tmp_upfiles[$tmp_num - 1]
理解できません、どうすれば論理的に理解できますか
function f_postfix($f_type,$f_upfiles){ $is_pass = false; //指定返回值的初值,false 表示无效 $tmp_upfiles = split("\.",$f_upfiles); //按 . 将文件名拆分成数组//注意:从php5.3起split函数已经在废止之列,使用时需加 @ 屏蔽错误//建议改为 explode,$tmp_upfiles = explodet(".",$f_upfiles); $tmp_num = count($tmp_upfiles); //统计拆分后数组元素的个数 for($num = 0; $num < count($f_type);$num++){ //对传入的后缀数组 if(strtolower($tmp_upfiles[$tmp_num - 1]) == $f_type["$num"]) //与文件名的后缀比较 $is_pass = $f_type["$num"]; //成果则保存 } return $is_pass; //返回计算结果}
文字列を配列に分割し、最後の要素と
substr($f_upfiles, strripos($f_upfiles) を取得することを検討してください, '.')+1);
抽出されたファイル名のサフィックスは pathinfo($f_upfiles, PATHINFO_EXTENSION)
単純な形式
function f_postfix($f_type,$f_upfiles) { $ext = strtolower(pathinfo($f_upfiles, PATHINFO_EXTENSION)); return in_array($ext, $f_type) ? $ext : false;}