token钱包国内下载地址https://im.tokevpoaket.pro/
php 图片验证码生成代码
第一种方法:
首先在 index.php 页面
function identity(){
$this->load->view('index',$data);
}
function codes(){
if($_POST['code'] == $_SESSION['code']){
echo 'ok';
}else{
echo 'no';
}
}
function create_code(){
session_start();
//生成验证码图片
ob_clean();
//header("Content-type:image/png");
//全数字
$str="1,2,3,4,5,6,7,8,9,0,a,b,c,d,e,f";//要显示的字符,自己可以增加或删除
$list=explode(",",$str);
$r=count($list)-1;
$laststr="";
for($i=0;$i<4;$i++){
$randnum=mt_rand(0,$r);
$laststr .= $list[$randnum];//取出字符,组合成要显示的字符串
}
$_SESSION['code']=$laststr; //将字符串放入SESSION中
//echo $laststr;
$img=imagecreate(28,28);//生成图片
$black=imagecolorallocate($img,0,0,0); // 设置颜色
$white=imagecolorallocate($img,255,255,255);
$gray=imagecolorallocate($img,200,200,200);
$red=imagecolorallocate($img,255,0,0);
$cl = imagefill($img,0,0,$red);//给图片填充颜色
//将验证法放入图片
imagestring($img,4,10,8,$laststr,$black);//将验证码放到图片上
for ($i=0;$i<8;$i++){
$lineColor = imagecolorallocate($img,rand(0,255),rand(0,255),rand(0,255));
imageline ($img,rand(0,$x),0,rand(0,$x),$y,$lineColor);
}
//干扰点
for ($i=0;$i<250;$i++){
imagesetpixel($img,rand(0,$x),rand(0,$y),$fontColor);
}
$aa = imagepng($img);
$bb = imagedestroy($img);
//echo $aa;
}
在视图页面 index.php
<form action="/index/codes" method="post">
<label for="yzmai" class="input-tips2">验证码:</label>
<input type="text" name="code" class="inputstyle2" maxlength="10" /><br/>
<img id="code" src="/index/create_code" alt="看不清楚,换一张" style="cursor: pointer; vertical-align:middle;" onClick="create_code()"/>
<button type="submit">提交</button>
</form>
<script>
function create_code(){
document.getElementById('code').src = '/index/create_code/'+Math.random()*10000;
}
</script>
可以去尝试下看看
第二种方法:
header("content-type:image/png");
ob_clean();
$img=imagecreate(44,18);
$bg=imagecolorallocate($img,245,245,245);//填充背景色
imagefill($img,0,0,$bg);//本函数将图片坐标 (x,y) 所在的区域着色。参数 col 表示欲涂上的颜色。
$vcode=" ";
for($i=0;$i<4;$i++)
{
$font_c=imagecolorallocate($img,6,6,6);//文本颜色
$num=rand(1,9);
$vcode=$vcode.$num;
imagestring($img,5,$i*10,1,$num,$font_c);//水平地画一行字符串
}
session_start();
$_SESSION['vcode']=$vcode;
imagepng($img); //imagepng — 以 PNG 格式将图像输出到浏览器或文件
imagedestroy($img);//销毁图像
禁止swiper左右滑动
禁止swiper左右滑动
php字符串替换
str_ireplace() 和 str_replace() 函数
str_ireplace() 和 str_replace 使用新的字符串替换原来字符串中指定的特定字符串,str_replace 区分大小写,str_ireplace() 不区分大小写,两者语法相似。
str_replace(find,replace,string,count)
str_ireplace(find,replace,string,count)
| 参数 | 描述 |
|---|---|
| find | 必需。规定要查找的值。 |
| replace | 必需。规定替换 find 中的值的值。 |
| string | 必需。规定被搜索的字符串。 |
| count | 可选。对替换数进行计数的变量。 |
<?php
header("Content-type:text/html;charset=utf-8");
$str = 'hello,world,Hello,world';
echo "原字符串:".$str."<br>";
$search = 'hello';
$replace = 'hi';
echo "<br>替换字符串:<br>";
echo str_replace($search, $replace, $str)."<br>";
echo str_ireplace($search, $replace, $str)."<br>";
?>
示例:
用js获取input的值,并用提示框显示出来
一、需求如下:
建立input输入框,设置其id为”study”,设置其值为”666″, 用js获取input的值,创建一个按钮叫”弹出”,点击”弹出”按钮,弹出input中的value的值。
二、思路:
(1)获取input输入框的value值
为input输入框设置id,name属性后,可以通过id或name来获取input的value值,这里使用id来获取input的value值
(2)创建”弹出”按钮
按钮的创建有多种,可以使用input,button标签等来创建,这里使用button标签
(3)使用js展示input中的value的值
可以为按钮设置onclick属性,并设定onclick对应的方法(这里创建了show这个方法),然后在show方法中使用alert方法来做提示信息,从而展示出input的value值
三、效果图:

点击”弹出”出现input中的value值
四、代码如下:
方案一、使用表单结合show方法
<html>
<head>
<title>弹出输入框的值</title>
<script type="text/javascript">
function show(){
var a = myform.study.value; //使用id来获取input输入框的值
alert(a);
};
</script>
</head>
<body>
<form name="myform">
<input type="text" id="study" name="box" value="666" />
<button onclick="show()">弹出</button>
</form>
</body>
</html>
除了使用id来获取input输入框的值,你也可以用name来获取input输入框的值,修改如下:
- var a = myform.study.value;
+ var a = myform.box.value;
此外,你也可以使用input标签来创建按钮进行,例如将上面的按钮修改为:
- <button onclick="show()">弹出</button>
+ <input type="button" onclick="show()" value="弹出" />
方案二、使用getElementId
<input id="study" class="ob1" value="666" type="text">
<input type="button" class="intro" id="btn" value="弹出">
<script>
document.getElementById("btn").onclick = function(){
var v=document.getElementById("study").value;
alert(v);
}
除了使用getElementById获取指定的内容(这里是获取”弹出”按钮,然后为按钮绑定o’clock事件),还可以使用以下方法:
- getElementsByTagName 通过标签来获取内容
- getElementsByClassName 通过类名来获取内容
注意:getElementsByClassName() 在 Internet Explorer 5,6,7,8 中无效。
五、参考资料
1.JavaScript如何获得input元素value值
2.HTML DOM 访问
作者:稻草人_b788
链接:https://www.jianshu.com/p/ce9db183159d
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
根据表中的时间戳字段统计每天数据的数量
我们在存数据的时候,经常会存下数据被写入或更新的时间备用。
今天遇到一个需要统计每天插入了多少数据的需求
实现的SQL 如下:
select FROM_UNIXTIME(create_time/1000,’%Y-%m-%d’)as date,COUNT(*)
FROM table_1
where 1
GROUP BY date;
1
2
3
4
create_time/1000 是因为我存的时间戳是精确到毫秒的,如果你存的时间戳精确到秒,则不需要除以1000
————————————————
版权声明:本文为CSDN博主「刘宇LY」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_28766327/article/details/79390629
java实现网络编程之 UDP多线程在线聊天(超详细)
这个涉及到多线程
发送端:
package chat;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
public class TalkSend implements Runnable{
DatagramSocket socket = null;
BufferedReader reader = null;
private int fromPort;
private String toIp;
private int toPort;
public TalkSend(int fromPort, String toIp, int toPort) {
this.fromPort = fromPort;
this.toIp = toIp;
this.toPort = toPort;
try {
socket = new DatagramSocket(fromPort);
reader = new BufferedReader(new InputStreamReader(System.in));
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void run() {
while(true) {
String data = null;
try {
data = reader.readLine();
byte[] datas = data.getBytes();
DatagramPacket packet = new DatagramPacket(datas, 0, datas.length, new InetSocketAddress(this.toIp, this.toPort));
socket.send(packet);
if(data.equals("bye")) {
break;
}
} catch (Exception e) {
e.printStackTrace();
}
}
socket.close();
}
}
接收端:
package chat;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
public class TalkReceive implements Runnable {
DatagramSocket socket = null;
private String msgFrom;
private int port;
public TalkReceive(int port, String msgFrom) {
this.port = port;
this.msgFrom = msgFrom;
try {
socket = new DatagramSocket(port);
} catch (SocketException e) {
e.printStackTrace();
}
}
@Override
public void run() {
try {
while(true) {
//准备接收包裹
byte[] container = new byte[1024];
DatagramPacket packet = new DatagramPacket(container, 0, container.length);
socket.receive(packet); //阻塞式接收包裹
//断开连接
byte[] data = packet.getData();
String receiveData = new String(data, 0, data.length);
System.out.println(msgFrom + ":" + receiveData);
if(receiveData.equals("bye")) {
break;
}
}
} catch (IOException e) {
e.printStackTrace();
}
socket.close();
}
}
测试代码:
学生端:
package chat;
public class TalkStudent {
public static void main(String[] args) {
//开启两个线程
new Thread(new TalkSend(7777, “localhost”, 9999)).start();
new Thread(new TalkReceive(8888, “老师”)).start();
}
}
老师端:
package chat;
public class TalkTeacher {
public static void main(String[] args) {
new Thread(new TalkSend(555, “localhost”, 8888)).start();
new Thread(new TalkReceive(9999, “学生”)).start();
}
}
测试结果:
————————————————
版权声明:本文为CSDN博主「太阳石笑笑」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_45806131/article/details/109089984
Linux系统下安装jdk及环境配置(两种方法)
第一种方式一键安装(yum安装)默认安装在/usr/lib/jvm
第二种手动安装,需要自己去Oracle官网下载需要的jdk版本,然后解压并配置环境,整个过程其实很简单。
一、yum一键安装
查看:


1.查看是否已安装JDK # yum list installed |grep java 2.卸载CentOS系统Java环境 # yum -y remove java-1.8.0-openjdk* *表示卸载所有openjdk相关文件输入 # yum -y remove tzdata-java.noarch 卸载tzdata-java 3.查看JDK软件包版本 # yum -y list java* 或者使用# yum searchjava | grep -i --color JDK 查看JDK软件包列表

下载:

安装JDK # yum install java-1.8.0-openjdk* 安装java1.8.0所有程序
yum install -y java-1.8.0-openjdk-devel.x86_64
注意:输入确认(y)直到控制台返回Complete安装成功 查看java版本信息 # java -version 输入javac java命令后显示帮助信息就算是安装成功了 使用yum安装环境变量自动就配好了


二、手动安装
1.去Oracle官网下载需要安装的jdk版本,我这里用的是jdk-8u221-linux-x64.tar.gz
2.将该压缩包放到/usr/local/java目录下(java需要自己创建,名字自己随意取,见名知意),然后解压该压缩包,输入如下指令:
tar zxvf jdk-8u221-linux-x64.tar.gz

3.配置环境变量,输入以下指令进行配置:

vi /etc/profile
在文件尾部添加如下信息:

JAVA_HOME=/usr/local/java/jdk1.8.0_221
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH

注意:JAVA_HOME=/usr/local/java/jdk1.8.0_221 此处等号右边的是自己的jdk实际解压目录。如果不是该目录则需要改成自己的实际目录,其他不变。
实际情况如下图所示:


4.编辑完之后,保存并退出,然后输入以下指令,刷新环境配置使其生效:
source /etc/profile

linux下清理垃圾必备命令
今天将服务器的一些垃圾的大文件进行了一次大清扫,效果还不错
首先使用
du -sh *
命令查询文件和文件所占的空间
然后使用
rm -rf “文件夹或文件名”
进行删除即可
PHP解压缩zip文件
1、使用PHP执行文件解压缩zip文件,前提条件,一定要确定服务器开启了zip拓展
2、封装的方法如下:
实例代码
1 <?php
2 /**
3 * 压缩文件
4 * @param array $files 待压缩文件 array('d:/test/1.txt','d:/test/2.jpg');【文件地址为绝对路径】
5 * @param string $filePath 输出文件路径 【绝对文件地址】 如 d:/test/new.zip
6 * @return string|bool
7 */
8 function zip($files, $filePath) {
9 //检查参数
10 if (empty($files) || empty($filePath)) {
11 return false;
12 }
13
14 //压缩文件
15 $zip = new ZipArchive();
16 $zip->open($filePath, ZipArchive::CREATE);
17 foreach ($files as $key => $file) {
18 //检查文件是否存在
19 if (!file_exists($file)) {
20 return false;
21 }
22 $zip->addFile($file, basename($file));
23 }
24 $zip->close();
25
26 return true;
27 }
28
29 /**
30 * zip解压方法
31 * @param string $filePath 压缩包所在地址 【绝对文件地址】d:/test/123.zip
32 * @param string $path 解压路径 【绝对文件目录路径】d:/test
33 * @return bool
34 */
35 function unzip($filePath, $path) {
36 if (empty($path) || empty($filePath)) {
37 return false;
38 }
39
40 $zip = new ZipArchive();
41
42 if ($zip->open($filePath) === true) {
43 $zip->extractTo($path);
44 $zip->close();
45 return true;
46 } else {
47 return false;
48 }
49 }
50 ?>
