2024年6月

1 <script th:src="@{/static/js/clipboard.min.js}"></script>
  • 写一段公用JS
 1 <script>
 2   var clipboard;
 3   $(function(){
 4     clipboard = new ClipboardJS('.js-clipboard');
 5     clipboard.on('success', function(e) {
 6       console.log(e)
 7       layer.msg('复制成功');
 8     });
 9 
10     clipboard.on('error', function(e) {
11       console.log(e)
12       layer.msg('复制失败');
13     });
14 
15   });
16 </script>
  • 点击某按钮弹出窗口
1 //弹出一个提示层
2 $('#showall').on('click', function(){
3   layer.open({
4   type: 1,
5   area: ['600px', '360px'],
6   shadeClose: true, //点击遮罩关闭
7   content: '<div style="padding:20px;"><p id="selected" style="margin-bottom: 10px;">'+curFundCodes+'</p><button class="js-clipboard layui-btn layui-btn-normal layui-btn-sm" data-clipboard-target="#selected">复制</button></div>'
8   });
9 });
  • 在页面中添加按钮
1 //复制 #selected 元素的内容
2 <button id="showall" class="js-clipboard" data-clipboard-target="#selected">复制</button>

或:

1 //复制任意文本
2 <button id="showall" class="js-clipboard" data-clipboard-text="任意文本">复制</button> 

转载:https://blog.csdn.net/IndexMan/article/details/111594325

 

 1 <?php
 2 $url = $_GET['url'];
 3 //获取视频url
 4 $url = get_redirect_url($url);
 5 //获取视频ID
 6 $str = dirname($url);
 7 $id = substr($str,strripos($str,'video')+6);
 8 //调用抖音官方API
 9 $str = file_get_contents('https://www.douyin.com/web/api/v2/aweme/iteminfo/?item_ids='.$id);
10 //将返回的json数据转为数组
11 $data = json_decode($str,true);
12 //获取有水印的视频地址
13 $url = $data['item_list'][0]['video']['play_addr']['url_list'][0];
14 //将playvm替换为play,从而获取无水印的视频地址
15 $url = str_replace('playwm','play',$url);
16 //获取重定向后的真实地址
17 $video_url = get_redirect_url($url);
18 echo "<a href='$video_url' target='_blank'>$video_url</a>";
19 
20 function get_redirect_url($url) {
21 $ch = curl_init();
22 curl_setopt($ch, CURLOPT_URL, $url);
23 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
24 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
25 curl_setopt($ch, CURLOPT_HTTPHEADER, array(
26 'Accept: */*',
27 'Accept-Encoding: gzip',
28 'Connection: Keep-Alive',
29 'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)'
30 ));
31 curl_setopt($ch, CURLOPT_HEADER, true);
32 curl_setopt($ch, CURLOPT_NOBODY, 1);
33 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
34 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
35 $ret = curl_exec($ch);
36 curl_close($ch);
37 preg_match("/Location: (.*?)\r\n/iU",$ret,$location);
38 return $location[1];
39 }

原理可参考:https://baijiahao.baidu.com/s?id=1710928885019968429&wfr=spider&for=pc 

函数可参考:https://blog.csdn.net/weixin_29924799/article/details/116287105

函数说明

可以直接获取网址重定向 (302,301) 之后的地址

函数源码

function get_location($url,$ua=0){

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

$httpheader[] = "Accept:*/*";

$httpheader[] = "Accept-Encoding:gzip,deflate,sdch";

$httpheader[] = "Accept-Language:zh-CN,zh;q=0.8";

$httpheader[] = "Connection:close";

curl_setopt($ch, CURLOPT_HTTPHEADER, $httpheader);

curl_setopt($ch, CURLOPT_HEADER, true);

if ($ua) {

curl_setopt($ch, CURLOPT_USERAGENT, $ua);

} else {

curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Linux; U; Android 4.0.4; es-mx; HTC_One_X Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0");

}

curl_setopt($ch, CURLOPT_NOBODY, 1);

curl_setopt($ch, CURLOPT_ENCODING, "gzip");

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$ret = curl_exec($ch);

curl_close($ch);

preg_match("/Location: (.*?)\r\n/iU",$ret,$location);

return $location[1];

}

使用示例

//使用默认ua

echo get_location('http://example.com');

//使用自定义ua

$ua = 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_3 like Mac OS X) AppleWebKit/604.3.5 (KHTML, like Gecko) Version/13.0 MQQBrowser/9.0.0 Mobile/15B87 Safari/604.1 MttCustomUA/2 QBWebViewType/1 WKType/1';

echo get_location('http://example.com',$ua);

 

转载:https://blog.csdn.net/weixin_29924799/article/details/116287105

目录
一、前言
二、配置SSH
  1. 检查本地主机是否已经存在ssh key
  2. 生成ssh key
  3. 获取ssh key公钥内容(id_rsa.pub)
  4. Github账号上添加公钥
  5. 验证是否设置成功
三、验证原理
四、通俗解释
  1. 为什么要配?
  2. 每使用一台主机都要配?
  3. 配了为啥就不用密码了?


一、前言
在github上配置ssh key很容易,网上一大堆教程,但基本没有详细解释其原理的,为什么要配?每使用一台主机都要配?配了为啥就不用密码了?下面将简单通俗地解释一下。

我们在往github上push项目的时候,如果走https的方式,每次都需要输入账号密码,非常麻烦。而采用ssh的方式,就不再需要输入,只需要在github自己账号下配置一个ssh key即可。

二、配置SSH
git使用SSH配置, 初始需要以下三个步骤

  • 使用秘钥生成工具生成rsa秘钥和公钥
  • 将rsa公钥添加到代码托管平台
  • 将rsa秘钥添加到ssh-agent中,为ssh client指定使用的秘钥文件

具体操作如下:

1. 检查本地主机是否已经存在ssh key

1 cd ~/.ssh
2 ls
3 //看是否存在 id_rsa 和 id_rsa.pub文件,如果存在,说明已经有SSH Key

如下图所示,则表明已经存在

如果存在,直接跳到第三步

2. 生成ssh key
如果不存在ssh key,使用如下命令生成

1 ssh-keygen -t rsa -C "xxx@xxx.com"
2 //执行后一直回车即可

生成完以后再用第二步命令,查看ssh key

3. 获取ssh key公钥内容(id_rsa.pub)

1 cd ~/.ssh
2 cat id_rsa.pub

如下图所示,复制该内容

4. Github账号上添加公钥
进入Settings设置

添加ssh key,把刚才复制的内容粘贴上去保存即可

5. 验证是否设置成功

1 ssh -T git@github.com

显示如下信息表明设置成功

设置成功后,即可不需要账号密码clone和push代码

注意:之后在clone仓库的时候要使用ssh的url,而不是https!

三、验证原理
SSH登录安全性由非对称加密保证,产生密钥时,一次产生两个密钥,一个公钥,一个私钥,在git中一般命名为id_rsa.pub, id_rsa。

那么如何使用生成的一个私钥一个公钥进行验证呢?

  • 本地生成一个密钥对,其中公钥放到远程主机,私钥保存在本地
  • 当本地主机需要登录远程主机时,本地主机向远程主机发送一个登录请求,远程收到消息后,随机生成一个字符串并用公钥加密,发回给本地。本地拿到该字符串,用存放在本地的私钥进行解密,再次发送到远程,远程比对该解密后的字符串与源字符串是否等同,如果等同则认证成功。

四、通俗解释
重点来了:一定要知道ssh key的配置是针对每台主机的!,比如我在某台主机上操作git和我的远程仓库,想要push时不输入账号密码,走ssh协议,就需要配置ssh key,放上去的key是当前主机的ssh公钥。那么如果我换了一台其他主机,想要实现无密登录,也就需要重新配置。

下面解释开头提出的问题:

1. 为什么要配?
配了才能实现push代码的时候不需要反复输入自己的github账号密码,更方便

2. 每使用一台主机都要配?
是的,每使用一台新主机进行git远程操作,想要实现无密,都需要配置。并不是说每个账号配一次就够了,而是每一台主机都需要配。

3. 配了为啥就不用密码了?
因为配置的时候是把当前主机的公钥放到了你的github账号下,相当于当前主机和你的账号做了一个关联,你在这台主机上已经登录了你的账号,此时此刻github认为是该账号主人在操作这台主机,在配置ssh后就信任该主机了。所以下次在使用git的时候即使没有登录github,也能直接从本地push代码到远程了。当然这里不要混淆了,你不能随意push你的代码到任何仓库,你只能push到你自己的仓库或者其他你有权限的仓库!

原文链接:https://blog.csdn.net/weixin_42310154/article/details/118340458

首先去curl 官方的Github,找curl的源码

wget https://github.com/curl/curl/archive/refs/tags/curl-7_76_1.tar.gz || \
wget http://download.zhufunin.com/curl-7_76_1.tar.gz

因为curl源码,默认没有configure 文件,需要用buildconf生成

./buildconf

源码编译安装

curl需要开启https访问的功能,需要用到openssl, 首先用源码编译安装最新的openssl, 安装步骤,见链接

#请确保/usr/local/openssl/是openssl源码安装的目录
./configure --with-ssl=/usr/local/openssl/ --prefix=/usr/local/curl
make 
make install

测试是否正常

/usr/local/curl/bin/curl -V
/usr/local/curl/bin/curl -v https://www.baidu.com

考虑把系统默认的curl 替换掉

mv /usr/bin/curl /usr/bin/curl.bak
ln -s /usr/local/curl/bin/curl /usr/bin/curl

最后一次验证

curl -V
curl -v https://www.baidu.com

可能遇到的问题

config.status: error: cannot find input file: `Makefile.in'

解决:https://www.cnblogs.com/Haijunzhu/p/8879728.html

 

原文链接:https://www.cnblogs.com/faberbeta/p/14808229.html