Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
请为初学者解释这个php substr代码_Php - Fatal编程技术网

请为初学者解释这个php substr代码

请为初学者解释这个php substr代码,php,Php,我明白,这就像babysteps一样,但我的问题是:我阅读了php手册,但我真的不明白为什么substr部分是这样!请帮忙!谢谢大家! 它检查文件名的最后3个字符,然后是最后4个字符,以获取扩展名,并查看它是否在允许的类型数组中 但是,最好使用pathinfo() substr($imgfile,-3);等于substr($imgfile,strlen($imgfile)-4) 这意味着您只接收字符串的最后3个字符。 在本例中,作者首先检查最后3个字符,然后检查最后4个字符,以确定它是否是允许的

我明白,这就像babysteps一样,但我的问题是:我阅读了php手册,但我真的不明白为什么substr部分是这样!请帮忙!谢谢大家!

它检查文件名的最后3个字符,然后是最后4个字符,以获取扩展名,并查看它是否在允许的类型数组中

但是,最好使用
pathinfo()

substr($imgfile,-3)
;等于
substr($imgfile,strlen($imgfile)-4)

这意味着您只接收字符串的最后3个字符。 在本例中,作者首先检查最后3个字符,然后检查最后4个字符,以确定它是否是允许的扩展


有关更多信息,请再次查看文档:

让我用婴儿语言向您解释:D

substr接受两个参数,一个字符串和一个数字。String是文本或文件名等字符,number是要获取的字符数

如果数字为正数,则从左侧提取字符;如果数字为负数,则从右侧提取字符。在代码中:

$path_parts = pathinfo($imgfile);
if( in_array(strtolower($path_parts['extension']),$allowed_types) ) {
    $a_img[] = $imgfile;
}
这意味着,取图像文件名的最后三个字符,即文件的扩展名,以及

substr($imgfile,-3)  // takes three characters from left
表示取最后四个字符

在允许的类型数组中:

substr($imgfile,-4)  // takes four characters from right side
您有三个字符扩展名和一个四个字符扩展名,因此这两个substr用于这些目的

我希望我能用简单的话给你解释一下


谢谢

所以它正在检查扩展是否与允许的类型数组中的相同?是的,您是对的。但最好使用
explode(“.”,$imgfile)
pathinfo()
就像@pitchen所说的那样。好的,我会试一试的!:)非常感谢。我疯狂地试图理解php!你们真的帮了大忙!对婴儿语言非常受欢迎!:)非常感谢你!我刚开始学习php,有时觉得自己很笨!但是我会好起来的!非常感谢你!事实上substr接受了3个参数。(字符串、开始、长度)不客气。试着读一本书,比如24小时自学PHP,或者任何其他基础的好书。另外,关于php的lynda视频也非常好。
substr($imgfile,-4)  // takes four characters from right side
$allowed_types = array('png','jpg','jpeg','gif');