ホームページ >バックエンド開発 >PHPチュートリアル >アップロードされたファイルの形式を決定するこの機能をどう説明すればよいでしょうか?

アップロードされたファイルの形式を決定するこの機能をどう説明すればよいでしょうか?

WBOY
WBOYオリジナル
2016-06-23 13:44:491058ブラウズ

彼の各文の意味がまだ理解できません?

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


$tmp_upfiles = array(1.2.3 . 4);
$tmp_num = count($tmp_upfiles); //4

$tmp_upfiles[$tmp_num - 1] となります。
$tmp_upfiles[4-1] = $tmp_upfiles[3]

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。