添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
在php中,怎么把一个变量中的字符串发生到剪贴板然后可以直接通过ctrl+v把内容粘贴到任何地方?比如txt文件中... 在php中,怎么把一个变量中的字符串发生到剪贴板
然后可以直接通过ctrl+v把内容粘贴到任何地方?比如txt文件中
/**
 * 把给定纯文本内容复制到系统剪贴板,兼容Mac/Win/Linux(只能普通文本内容,不支持富文本及图片甚至文件)
 * @param $content
 *
 * @return string|null
 */
public function copyPlainTextToClipboard($content){
$clipboard = PHP_OS=='Darwin' ? 'pbcopy' : (PHP_OS=='WINNT' ? 'clip' : 'xsel');
//$content不要加引号,因为引号会被输出的,因为这句命令已经是shell执行,而不是php
//echo也不是php命令,而是shell命令,win/mac/linux都有echo这个命令的
$command = "echo {$content} | {$clipboard}";
return shell_exec($command);
}

如代码所示,直接用php的shell_exec执行shell命令,注意,$command中的echo并不是php的echo,而是shell的echo,这个echo在Mac/Linux肯定可用,但其实在Win也一样可用的,所以其实就是把字符串echo出来,再用管道符“|”把它导入到系统剪贴板变量中即可,Win的剪贴板变量是“clip”,Mac的是“pbcopy”,Linux的是“xsel”(win和mac的都肯定是默认存在的,而Linux的xsel有些系统可能需要自己手动安装一下,一般也是存在的)

以上的代码是我在实际项目( PicUploader )中使用的,验证过没问题的。

是这样:一般ie内核可以使用js来操作
格式是
clipboardData.setData('Text',‘剪贴板内容’);

如果非ie内核较难实现,但据我的经验discuz!解决了这个问题
解决方法是利用flash来赋值,这个就比较复杂了,原理已经是通过falsh来访问剪贴板了
我试过用js clipboardData.setData('Text',‘剪贴板内容’);来操作

我用的360浏览器 是ie内核的
为什么不能实现呢??

我试了下,可以的

你运行一下以下的代码

注意,要在原版ie下运行才能直接复制(并且要允许运行控件,否则不行)


至于360浏览器,据我了解,可能是因为他已经是多内核了

<script type="text/javascript">  
    function copyUrl(){
    var neirong = 'ssssssssssaaa';
        if(navigator.userAgent.toLowerCase().indexOf('ie') > -1) {   
            clipboardData.setData('Text',neirong);   
            alert (neirong + "已复制到剪切板!");   
        } else {   
            prompt("非IE内核浏览器,请复制以下内容:",neirong);   
        }   
   }     
</script>    
<a onclick="copyUrl(this.href);return false;" target="_self">复制地址</a>
本回答被提问者采纳