首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP不能复制(exec pbcopy)到浏览器上的剪贴板,但在终端上

PHP不能复制(exec pbcopy)到浏览器上的剪贴板,但在终端上
EN

Stack Overflow用户
提问于 2016-12-12 06:24:59
回答 1查看 147关注 0票数 0

我正在运行MAMP,这是我要测试的PHP代码:

代码语言:javascript
复制
<?php
ini_set('display_errors', true);
error_reporting(E_ALL);
header('content-type:text/plain');

ob_start();
echo ini_get('safe_mode') ? 'safe' : 'not safe';
echo PHP_EOL;
echo exec('whoami').PHP_EOL;
echo exec('groups').PHP_EOL;
echo exec('which pbcopy').PHP_EOL;
$str = 'teststr'.rand(0, 9999);
exec('echo "'.$str.'" | pbcopy');
$pbpaste = exec('pbpaste 2>&1');
echo $pbpaste.PHP_EOL;
echo $pbpaste == $str ? 'IT WORKS' : 'failed';
echo PHP_EOL;

file_put_contents('output.log', ob_get_contents());

我在终端和浏览器上得到了相同的输出(比如相同的用户和pbcopy路径),但在终端上它显示"IT WORKS",因为pbcopy和pbpaste的执行是有效的。

这在以前的MAMP版本上有效,但在更新MAMP后,它不再起作用。

顺便说一下:我正在为monosnap开发webdav skript,所以实际上我想让它在monosnap上工作,但它不能。Monosnap也只是调用localhost....script.php,所以我认为这也是为什么它在浏览器中不能工作的问题。

仅供参考,终端输出:

代码语言:javascript
复制
not safe
firebook
staff everyone localaccounts _appserverusr admin _appserveradm _lpadmin com.apple.sharepoint.group.1 _appstore _lpoperator _developer com.apple.access_ftp com.apple.access_screensharing com.apple.access_ssh-disabled
/usr/bin/pbcopy
teststr9794
IT WORKS

浏览器中的输出

代码语言:javascript
复制
not safe
firebook
staff everyone localaccounts _appserverusr admin _appserveradm _lpadmin com.apple.sharepoint.group.1 _appstore _lpoperator _developer com.apple.access_ftp com.apple.access_screensharing com.apple.access_ssh-disabled
/usr/bin/pbcopy

failed
EN

回答 1

Stack Overflow用户

发布于 2016-12-12 08:31:34

我找到了一个解决办法,在从MAMP手动运行.../apachectl start后它起作用了,现在我有了扩展的exec权限,并且可以在访问浏览器页面时运行osascripts (例如,显示对话框)。(它起作用了,我不知道具体原因,我认为这不是因为二进制)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41091814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档