php注释怎么表达,怎样列出一份适合自己的读书清单?
列一份适合自己的读书清单:
1.关键词:适合自己如何找到适合自己的书呢?首先确定你的读书目的或方向,想读哪类型的书,职场?心理学?经济学?散文?还是小说?接着认清自己习惯或擅长的阅读节奏和方法,喜欢一次读几本不相关的书?还是喜欢一本接一本地读,而且都是一个主题相关的书?擅长的阅读方法又是什么?略读加详读、九宫格阅读法、SQ3R阅读法?最后将读书目的和阅读方法交叉,重叠的那部分就是你又想读又适合你读的书,也就是所谓的适合你自己的书。2.关键词:读书清单读书清单就是把想要读的书列在一起。这里有两个列法:①按照自己喜好来列,哪些书喜欢程度,从高到低列出来,你喜欢东野圭吾,就把他的书列在前几行,喜欢阿加莎,就把她的侦探小说列前面,喜欢哪个列前面就好了;②按照书的主题来列,也就是平时我们所说的主题阅读。主题阅读可以让我们快速领略一个领域内的精华内容,是学习新领域最有效的方法之一。3.隐藏关键词:找书前面说了很多,有前提你得做到,那就是你得有那么多书。如果没有,也好办,就去找呗。怎么找书?①根据主题来找,例如心理学主题,就是百度搜索“心理学书籍”,就会有很多关于心理学的书单,然后自行筛选即可;②从平台里找,在图书领域最权威的平台莫过于豆瓣了,几乎所有和图书相关的推广、推荐都会采用豆瓣评分,并以豆瓣评分高者为荣。因此从豆瓣里找书再好不过了,里面有大量官方的或个人组织主题书单,而且每本书都有短评和长评,也方便你筛选。除了豆瓣,还有知乎也不错,一个比较知性的交流平台,里面也有大量主题书单;③关注一些知识类大V、或出版社,他们也会不定期地发布一些书单,而且像后浪、中信、读客等出版公司都有自己的公众号专门用来发布书单的。4.关键词:书不知道你喜欢哪种形式的书,现今最常见的书的形式有三种:①纸质书,喜欢纸质书的同学,可以去多抓鱼、小木屋等平台看看,里面书籍都很划算;②电子书,电子书就更好了,网上有大量、丰富的电子书资源,而且很多都免费。这里留几个我常用的网站给你吧。【鸠摩搜索:https://www.jiumodiary.com/一个全网搜索电子书的网站,想看什么书,先在这里搜一下,很好用的】【我的小书屋:http://mebook.cc/】【周读:http://www.ireadweek.com/index.php?m=index&a=fenlei】【SEO观察:http://www.seosee.info/】③音频书,也叫听书。又分为全文朗读和内容解读两种,我没听过朗读的,一直在听解读版的。常见平台有:得到、有书、樊登读书等,里面有大量丰富的书。愿意读书是好事,掌握一定方法、技巧,会让你读书生活更有趣、更充实的。有哪些好的软件可以制作电子相册?
我就来推荐一下
电脑软件的话,效果是好,但是一般都比较麻烦,通常都是专业人士或者相关爱好者才会使用,所以就不多作描述。大部分人还是用手机制作,原因很简单,方便制作、方便分享、方便保存
讲真,手机上我用过最好的软件就是VCore美册
其实手机上这类app有很多,包括微信公众号也能制作,但真正好用的很少。我指的好用当然是要效果好、功能全面、制作简单,而大部分软件仅仅只是制作简单。不黑不吹,我推荐的这款算的上是真正的良心,之前加了他们家的讨论群,几乎都是一致的好评。下面我来说一下它到底好用在哪里
首先,先来说一说的效果
先发一些不用风格的视频,实际制作出来的效果应该是最直观的展现了
https://www.vcore.hk/wap.php?id=151859783732783280 写下我们的爱情故事https://www.vcore.hk/wap.php?id=152090652786374675 樱花树下的萌妹纸https://www.vcore.hk/wap.php?id=152040382391102192 离人愁https://www.vcore.hk/wap.php?id=151701630631014430 见证我们的婚礼https://www.vcore.hk/wap.php?id=255072 我家宝贝十年的成长记录从效果上来说,已经做的非常出色了。
分辨率最高可选择1080P超清,照片比例可选择1:1、4:3、16:9。导出到电脑我记得是MP4格式,可以直接观看。在一些大屏幕、投影仪上播放也毫无压力。
它的主题模板非常丰富,把酷炫跟唯美的感觉结合到了一起,转场动效流畅且不单一。根据不同的使用场景设计了各种风格的模板,并且这些模板都是免费使用。这也是说它良心的原因之一
开始也说了,用手机制作很简单,一般只需导入照片,选择模板和音乐,再合成就ok了。差别就在于一些额外的功能,这些功能可以让我们制作出更好的相册视频。下面再来说说它的功能
制作中的功能
音乐它有丰富的音乐库,对一些热门的音乐进行了分类。在音乐库中可以搜索到几乎所有的歌曲。还可以添加手机本地音乐
添加文字它可以对每张照片添加文字,写下想说的话,增加创意度和效果。同时还可以改变文字的大小、颜色、字体
文字镜头大量可以添加文字的图片镜头,可以作为封面,也可以写下一段想说的话。这些镜头图片设计的还是比较用心的,各种风格都有。在其他软件上没看到过这个功能,不错
滤镜大概有十几种滤镜,可以对每张照片设置,不用特意去P图的。大部分软件都没这个功能
还有全显平铺、旋转、设置每张照片播放时长等功能,这些都可以使制作出来的效果更好
其他功能
社交它是一款相册视频的工具,同时还带有一定的社交属性。在这里,可以看到其他用户制作的视频,点赞、评论、转发等等,就像是一个音乐相册的社交平台
保存分享制作完的视频可以保存本地、一键分享、发布到app。还有私密云存储功能,不占用手机内存,随时可以在app上下载
嗯...差不多介绍完了。相册视频主要是为了记录和回忆,它适用于很多场景,比如婚纱照、宝宝照、成长记录、旅游照、自拍、摄影等等,这款软件都是可以轻松应对的。但是制作相册视频,不仅需要一款好的软件,制作过程中加入自己的创意与感情也非常重要。相信只要用心去做一定可以做的好。
最后,祝大家都可以制作出满意的相册视频
PHP的开发效率比java要高?
首先,两者的定位不一样。
PHP的诞生就是为了专注做网站的,轻便型。PHP的优势主要在于它属于前端开发范畴,所有的实现逻辑都放在了PHP文件内与html等文件部署在一起,发布部署快,对服务器资源要求比较低,因此为网站类业务企业极大的节省了研发时间和成本。无论是新需求还是需求变更都能快速完成上线。特别是在电商和企业门户刚起步的时候,特别流行PHP。
Java是面向后端开发的,相比PHP来说显得更加厚重。除了自身架构以外还需要依赖更多的生态组件,开发流程也比PHP复杂,涉及需求设计、业务建模、数据库建模与环境搭建、实现逻辑的开发、基于Web容器部署。现在java开发基本上都前后端分离了,Java端更加注重后端逻辑的实现、服务的部署、数据的治理,而前端页面展现就交给了html、vue、react等框架的前端开发来完成,前后端各自独立部署,基于接口进行通信。
其次,目前的市场需求不一样。
截止2022年,在Go等语言的面世以来,网站或者互联网电商平台都更加趋向于Go语言开发了,加上目前市面上有大量的快速建站、网站代运营等业务的兴起,从而导致市场对PHP的需求有所下降。
随着互联网的快速发展,Java逐渐走向后端微服务化、saas平台化等发展方向,再加上Java自身的灵活性、易扩展性、兼容性使其更加适用于更多的业务场景。从而让其在软件市场更受青睐。因此在面向前端开发的PHP,无法满足这种服务化的需求。
说的通俗一点就是PHP就像苹果一体机,Java更像独立的PC机。
我们常见的提交方式有哪些?
WEB安全之SQL注入
引言:
在开发网站的时候,出于安全考虑,需要过滤从页面传递过来的字符。通常,用户可以通过以下接口调用数据库的内容:URL地址栏、登陆界面、留言板、搜索框等。这往往给骇客留下了可乘之机。轻则数据遭到泄露,重则服务器被拿下。
1、SQL注入步骤
a)寻找注入点,构造特殊的语句
传入SQL语句可控参数分为两类 1. 数字类型,参数不用被引号括起来,如 2. 其他类型,参数要被引号扩起来,如
b)用户构造SQL语句(如:'or 1=1#;admin'#(这个注入又称PHP的万能密码,是已知用户名的情况下,可绕过输入密码)以后再做解释)
c)将SQL语句发送给DBMS数据库
d)DBMS收到返回的结果,并将该请求解释成机器代码指令,执行必要得到操作
e)DBMS接受返回结果,处理后,返回给用户
因为用户构造了特殊的SQL语句,必定返回特殊的结果(只要你的SQL语句够灵活)
下面,我通过一个实例具体来演示下SQL注入 二、SQL注入实例详解(以上测试均假设服务器未开启magic_quote_gpc)
1) 前期准备工作 先来演示通过SQL注入漏洞,登入后台管理员界面 首先,创建一张试验用的数据表:
CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(64) NOT NULL, `password` varchar(64) NOT NULL, `email` varchar(64) NOT NULL,PRIMARY KEY (`id`),UNIQUE KEY `username` (`username`) ) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;添加一条记录用于测试:
INSERT INTO users (username,password,email)VALUES('MarcoFly',md5('test'),'marcofly@test.com');接下来,贴上登入界面的源代码
<html><head><title>Sql注入演示</title><meta http-equiv="content-type" content="text/html;charset=utf-8"></head><body ><form action="validate.php" method="post"><fieldset ><legend>Sql注入演示</legend><table><tr><td>用户名:</td><td><input type="text" name="username"></td></tr><tr><td>密 码:</td><td><input type="text" name="password"></td></tr><tr><td><input type="submit" value="提交"></td><td><input type="reset" value="重置"></td></tr></table></fieldset></form></body></html>附上效果图:
当用户点击提交按钮的时候,将会把表单数据提交给validate.php页面,validate.php页面用来判断用户输入的用户名和密码有没有都符合要求(这一步至关重要,也往往是SQL漏洞所在)
! <!--前台和后台对接--><html><head><title>登录验证</title><meta http-equiv="content-type" content="text/html;charset=utf-8"></head><body><?php $conn=@mysql_connect("localhost",'root','') or die("数据库连接失败!");; mysql_select_db("injection",$conn) or die("您要选择的数据库不存在"); $name=$_POST['username']; $pwd=$_POST['password']; $sql="select * from users where username='$name' and password='$pwd'"; $query=mysql_query($sql); $arr=mysql_fetch_array($query);if(is_array($arr)){ header("Location:manager.php"); }else{ echo "您的用户名或密码输入有误,<a href=\"Login.php\">请重新登录!</a>"; } ?></body></html>注意到了没有,我们直接将用户提交过来的数据(用户名和密码)直接拿去执行,并没有实现进行特殊字符过滤,待会你们将明白,这是致命的。 代码分析:如果,用户名和密码都匹配成功的话,将跳转到管理员操作界面(manager.php),不成功,则给出友好提示信息。 登录成功的界面:
登录失败的提示:
到这里,前期工作已经做好了,接下来将展开我们的重头戏:SQL注入
2) 构造SQL语句 填好正确的用户名(marcofly)和密码(test)后,点击提交,将会返回给我们“欢迎管理员”的界面。 因为根据我们提交的用户名和密码被合成到SQL查询语句当中之后是这样的: select * from users where username='marcofly' and password=md5('test') 很明显,用户名和密码都和我们之前给出的一样,肯定能够成功登陆。但是,如果我们输入一个错误的用户名或密码呢?很明显,肯定登入不了吧。恩,正常情况下是如此,但是对于有SQL注入漏洞的网站来说,只要构造个特殊的“字符串”,照样能够成功登录。
比如:在用户名输入框中输入:' or 1=1#,密码随便输入,这时候的合成后的SQL查询语句为: select * from users where username='' or 1=1#' and password=md5('') 语义分析:“#”在mysql中是注释符,这样井号后面的内容将被mysql视为注释内容,这样就不会去执行了,换句话说,以下的两句sql语句等价:
select * from users where username='' or 1=1#' and password=md5('')等价于
select* from users where usrername='' or 1=1因为1=1永远是都是成立的,即where子句总是为真,将该sql进一步简化之后,等价于如下select语句:
select * from users 没错,该sql语句的作用是检索users表中的所有字段
上面是一种输入方法,这里再介绍一种注入的方法,这个方法又称PHP的万能密码
我们再已知用户名的条件下,可以不能密码即可登入,假设用户名:admin
构造语句:
select * from users where username='admin'#' and password=md5('')等价于
select * from users where username='admin'这样即可不能输入密码登入上去的。
数据库就会错认为不用用户名既可以登入,绕过后台的验证,已到达注入的目的。
同样利用了SQL语法的漏洞。
看到了吧,一个经构造后的sql语句竟有如此可怕的破坏力,相信你看到这后,开始对sql注入有了一个理性的认识了吧~ 没错,SQL注入就是这么容易。但是,要根据实际情况构造灵活的sql语句却不是那么容易的。有了基础之后,自己再去慢慢摸索吧。 有没有想过,如果经由后台登录窗口提交的数据都被管理员过滤掉特殊字符之后呢?这样的话,我们的万能用户名' or 1=1#就无法使用了。但这并不是说我们就毫无对策,要知道用户和数据库打交道的途径不止这一条。
后端Java怎么和前端HTML交互?
本人计算机专业毕业,从事Java Web研发三年半,我就以个人的经历来谈谈后端Java怎么和前端HTML交互,由于主要从事Java服务端的研发,对前端HTML的认识有限,个人浅见,一起交流。
刚毕业参加工作时,首先接触到的是Java前端技术是JSP,当时做基础架构方面的工作,有一些管理界面需要研发,而团队的技术线就是JSP+Spring+Duboo+Zookeeper+mysql,我当然也延续了这一技术线,前后使用了一年左右的JSP,前后端研发都一起搞,包括数据库部署、上线维护等都有所涉及。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。随着技术的发展,JSP逐渐被团队淘汰。
积极拥抱变化,是互联网公司或者互联网团队需要做的事情,spring boot + spring cloud的技术线进入了我们的视野。基础架构全面引入spring boot,积极推动微服务的发展成为团队的新课题。在推动spring boot的使用中,发现其支持的thymeleaf模板引擎有诸多的优点,在leader拍板之后,团队的前端技术就由JSP替换为thymeleaf。thymeleaf的优点是静态html嵌入标签属性,浏览器可以直接打开模板文件,便于前后端联调,同时也是springboot官方推荐方案。
技术总是不断发展的,前后端分离,面向接口编程的理念又进入我们的团队。hymeleaf这种前后端一起部署的技术体系已经不能满足我们的要求,为了推动前后端分离和专业的人做专业的事,将功能需求做页面划分,后端和前端定义接口标准,然后依此为契约,同步进行研发。发展到这里,前端的React技术栈又进入了我们团队的视野,由于其前端的技术太过专业,我当时只是简单的了解了一下,没有深入去学习,就专注于做服务端的接口研发。
引入该理念不久,我就跳槽后,进入新的公司新的团队,开始使用velocity。对于这个选择,没有更多的理由,融入新的环境新的团队,必须要让自己了解和使用团队的技术线,其性能良好,据说比jsp性能还要好些,但是自己没有做过相关的测试。到目前为止也在使用velocity,但会积极推动团队拥抱新变化,采用新的技术线来做相关的需求,比如freemarker等又成了团队的新的选择。
作者:夕阳雨晴,欢迎关注我的号。偶尔美文,主流Java,为你讲述不一样的码农生活。