我是一名PHP CLI脚本的编写者,其中之一的参数是路径。
例如:
```php ```
脚本有自己的方式来读取参数,并正确获取-p的值,将其设置为一个名为$project_path的变量。
然而,当我使用isdir($project_path)测试文件夹时,它返回false。
我尝试以不同的方式传递路径:
- /Volumes/Macintosh\ HD/Users/andrea/samples - '/Volumes/Macintosh HD/Users/andrea/samples' - "/Volumes/Macintosh HD/Users/andrea/samples" - '/Volumes/Macintosh\ HD/Users/andrea/samples' - "/Volumes/Macintosh\ HD/Users/andrea/samples"
但是没有一个有效。
我应该使用什么格式使其工作? 请注意,此脚本还必须在不同的操作系统(例如Windows)上工作。
问题是路径参数会自动转义: 我需要对其进行取消转义。 返回的字符串如下所示:
'/Volumes/Macintosh\ HD/Users/andrea/samples'
例如:
```php ```
php myscript.php -p=/Volumes/Macintosh HD/Users/andrea/samples
脚本有自己的方式来读取参数,并正确获取-p的值,将其设置为一个名为$project_path的变量。
然而,当我使用isdir($project_path)测试文件夹时,它返回false。
我尝试以不同的方式传递路径:
- /Volumes/Macintosh\ HD/Users/andrea/samples - '/Volumes/Macintosh HD/Users/andrea/samples' - "/Volumes/Macintosh HD/Users/andrea/samples" - '/Volumes/Macintosh\ HD/Users/andrea/samples' - "/Volumes/Macintosh\ HD/Users/andrea/samples"
但是没有一个有效。
我应该使用什么格式使其工作? 请注意,此脚本还必须在不同的操作系统(例如Windows)上工作。
问题是路径参数会自动转义: 我需要对其进行取消转义。 返回的字符串如下所示:
'/Volumes/Macintosh\ HD/Users/andrea/samples'
isdir($project_path)
,它是否有效?两个引用字符串对于常见的 shell 看起来都很合适。将它们传入变量后,变量内容看起来如何?否则,您可能仍然想要查看您的 argv 读取器。 - mario$argv
变量访问该参数吗? - Tsanyo Tsanevphp -f myscript.php -- -p=/Volumes/Macintosh\ HD/Users/andrea/samples
。-- 将告诉 php 可执行文件,它的参数列表已经结束,之后的所有内容都应传递给 PHP 文件。在 myscript.php 的开头执行var_dump($argv); exit();
并检查传入脚本的内容。如果 $argv 的索引 1 是-p=/Volumes/Macintosh\ HD/Users/andrea/samples
,则一切正常。 - Tsanyo Tsanev