此方法似乎无论文件扩展名如何,都会对正在运行的 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 时)。