此方法似乎无论文件扩展名如何,都会对正在运行的 phar 文件返回 true。这并未记录在案(PHP 可以完美运行带有 php 扩展名的 phar 文件这一事实也是如此)。例如,这允许读取正在运行的 phar 的元数据。
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.2.0)
Phar::isValidPharFilename — 返回给定文件名是否为有效的 phar 文件名
返回给定文件名是否为有效的 phar 文件名,phar 扩展会将其识别为 phar 归档文件。这可以用来测试名称,而无需实例化 phar 归档文件并捕获指定无效名称时必然会抛出的异常。
filename
尚未创建的 phar 归档文件的名称或完整路径
executable
此参数决定文件名应被视为可执行的 phar 归档文件还是非可执行的数据归档文件
此方法似乎无论文件扩展名如何,都会对正在运行的 phar 文件返回 true。这并未记录在案(PHP 可以完美运行带有 php 扩展名的 phar 文件这一事实也是如此)。例如,这允许读取正在运行的 phar 的元数据。
请注意,只要文件名至少包含一个点,当 $executable 为 'false' 时,此方法就会接受_所有内容_(=> 返回 'true')。
var_dump(\PharData::isValidPharFilename('randomstring.y', false));
bool(true)
这完全没有错,因为我可以随意命名归档文件,但这使得该方法完全没有用(当 $executable == false 时)。