如何从PHP CLI应用程序(异步+跨平台)在默认浏览器中打开URL?
问题描述:
我在PHP中创建一个CLI应用程序,我想在默认的Web浏览器中打开帮助页面。这与git在运行git help <command>
时的作用类似,它在默认浏览器中打开相关的URL。如何从PHP CLI应用程序(异步+跨平台)在默认浏览器中打开URL?
在Python上有webbrowser.open
function它照顾它,但我找不到任何PHP包。
这是迄今为止我的做法,但我不能够正确地测试它(即Windows 7中,Debian的,MacOS的,等等),所以它是一种哈克:
<?php
$uname = strtolower(php_uname());
$os = (strpos($uname, "darwin") !== false) ? 'osx' : ((strpos($uname, "win") !== false) ? 'win32' : 'linux');
$end = $os == 'win32' ? '' : '&';
$cmd1 = sprintf("%s $url $end", $os == 'win32' ? 'start ""' : ($os == 'osx' ? 'open' : 'xdg-open'));
pclose(popen($cmd1, "r"));
我的问题是:
是否有一个相当于python的
webbrowser
库的PHP库,可处理所有操作系统?是否有另一个更简单的方法来完成它?
答
这里有两个小库,提供此功能:
-
https://packagist.org/packages/yuloh/open(
composer require yuloh/open
) -
https://packagist.org/packages/florianv/open(
composer require florianv/open
)
它看起来对我来说,后者更充分特色。
Windows中的“start $ url”...你试过了吗?我认为这将是“探险家$ url”.... –
@Kevin_Kinsey是试过了(它也在上面的解决方案中),不幸的是它不是跨平台兼容的。 – supersan
我的观点是,“开始$ url”甚至没有在Windows上工作;在我的系统上,你必须调用“explorer $ url”。 '尼克斯可能是你真正的垮台,尽管...如果X甚至没有跑? –