首页
Search
1
解决 docker run 报错 oci runtime error
49,335 阅读
2
WebStorm2025最新激活码
27,571 阅读
3
互点群、互助群、微信互助群
22,731 阅读
4
常用正则表达式
21,541 阅读
5
罗技鼠标logic g102驱动程序lghub_installer百度云下载windows LIGHTSYNC
19,320 阅读
自习室
CODER
课程
SEO
学习视频
手册资料
呆萌
工具软件
运维
DBA
互通有无
资源
微信群
激活工具
搞钱日记
养生记
包罗万象
登录
Search
标签搜索
DeepSeek
学习指北
Prompt
提示词
Loong
累计撰写
179
篇文章
累计收到
0
条评论
首页
栏目
自习室
CODER
课程
SEO
学习视频
手册资料
呆萌
工具软件
运维
DBA
互通有无
资源
微信群
激活工具
搞钱日记
养生记
包罗万象
页面
搜索到
179
篇与
的结果
2019-07-10
PHP经典面试题汇总(二)
十一·如何进行防止SQL注入?1·表单尽量用post提交,核心用户验证都用post,表单判断使用get,因为get比post快2·使用$_SERVER[HTTP_REFERER]判断提交表单的源头是否是本机域名$path = $_SERVER['HTTP_REFERER']; $arr = parse_url($path); $arr2= $arr['host']; echo "<pre>"; print_r($arr2);3·php.ini开启addslashes,防止用户输入信息有单引号或者双引号对sql语句带来的破坏性,开启之后会在单双引号之前加反斜杠\’\”4·密码需要设置md5或Sha1加密5·服务器本身的安全(web + mysql)十二·防止盗链?1·服务器上防止盗链:Apache 和Nginx做rewrite基于源来做判断阻止盗链Apache设置防盗链方法:(.htaccess文件)RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ [NC] RewriteCond %{HTTP_REFERER} !linuxidc.cn [NC] RewriteCond %{HTTP_REFERER} !google.com [NC] RewriteCond %{HTTP_REFERER} !baidu.com [NC] RewriteRule .(jpg|gif|png|bmp|swf|jpeg) /image/replace.gif [R,NC,L] RewriteRule ^(.*)$ http://image.linuxidc.cn/image/$1 [L]不是以上网站访问来源就直接转向:RewriteRule .(jpg|gif|png|bmp|swf|jpeg) /image/replace.gif [R,NC,L]Nginx设置防盗链方法:(/usr/local/nginx/conf/nginx.conf文件)location ~ .*\.(jpg|gif|png|bmp|swf|jpeg)$ { expires 30d; valid_referers none blocked *.linuxidc.cn *.google.com *.baidu.com; if ($invalid_referer) { rewrite ^/ ; return 404; } }2·代码防止盗链:$_SERVER[‘HTTP_REFERER’]十三·用php写出一个安全的用户登录系统需要注意哪些方面?1·验证码2·U盾3·动态口令卡4·限制登录次数5·使用数字键盘6·密码不能粘贴7·网址使用ssl,服务器证书https8·注册验证必须要使用php验证9·以post提交给后端php程序十四·使用过哪些php框架,试着描述其优劣点?Thinkphp:ThinkPHP(FCS)是一个轻量级的中型框架,是从Java的Struts结构移植过来的中文PHP开发框架。它使用面向对象的开发结构和MVC模式,并且模拟实现了Struts的标签库,各方面都比较人性化,熟悉J2EE的开发人员相对比较容易上手,适合php框架初学者。 ThinkPHP的宗旨是简化开发、提高效率、易于扩展,其在对数据库的支持方面已经包括MySQL、MSSQL、Sqlite、PgSQL、 Oracle,以及PDO的支持。ThinkPHP有着丰富的文档和示例,框架的兼容性较强,但是其功能有限,因此更适合用于中小项目的开发。优点:1.易于上手,有丰富的中文文档;2.框架的兼容性较强,PHP4和PHP5完全兼容、完全支持UTF8等。3. 适合用于中小项目的开发缺点1.对Ajax的支持不是很好;2.目录结构混乱,需要花时间整理;3.上手容易,但是深入学习较难。Yii:Yii 是一个基于组件的高性能php框架,用于开发大型Web应用。Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程。从 MVC,DAO/ActiveRecord,widgets,caching,等级式RBAC,Web服务,到主题化,I18N和L10N,Yii提供了 今日Web 2.0应用开发所需要的几乎一切功能。事实上,Yii是最有效率的PHP框架之一。优点1·纯OOP2·用于大规模Web应用3·模型使用方便4·开发速度快,运行速度也快。性能优异且功能丰富5·使用命令行工具。缺点:1·对Model层的指导和考虑较少2·文档实例较少3·英文太多4·要求PHP技术精通,OOP编程要熟练!5·View并不是理想view,理想中的view可能只是html代码,不会涉及PHP代码。Lavarel:优点Laravel 的设计思想是很先进的,非常适合应用各种开发模式TDD, DDD 和BDD,作为一个框架,它准备好了一切,composer 是个php 的未来,没有composer,PHP 肯定要走向没落。laravel 最大的特点和优秀之处就是集合了php 比较新的特性,以及各种各样的设计模式,Ioc 容器,依赖注入等。缺点基于组件式的框架,所以比较臃肿CodeIgniter:优点:推崇“简单就是美”这一原则。没有花哨的设计模式、没有华丽的对象结构,一切都是那么简单。几行代码就能开始运行,再加几行代码就可以进行输出。可谓是“大道至简”的典范。 配置简单,全部的配置使用PHP脚本来配置,执行效率高;具有基本的路由功能,能够进行一定程度的路 由;具有初步的Layout功能,能够制作一定程度的界面外观;数据库层封装的不错,具有基本的MVC功能. 快速简洁,代码不多,执行性能高,框架简单,容易上手,学习成本低,文档详细;自带了很多简单好用的library,框架适合小型应用.缺点:本身的实现不太理想。内部结构过于混乱,虽然简单易用,但缺乏扩展能力。 把Model层简单的理解为数据库操作. 框架略显简单,只能够满足小型应用,略微不太能够满足中型应用需要.评价:总体来说,拿CodeIgniter来完成简单快速的应用还是值得,同时能够构造一定程度的layout,便于模板的复用,数据操作层来说封装的不 错,并且CodeIgniter没有使用很多太复杂的设计模式,执行性能和代码可读性上都不错。至于附加的library 也还不错,简洁高效。十五·用过哪些版本控制工具?svn subversion 版本控制github 版本控制十六·进制转换?对照表:1 1 1 1 1 1 1 1(二进制)128 64 32 16 8 4 2 1(十进制)例如:(二进制转换为十进制) 101010111 = 1×2^8 + 1×2^6 + 1×2^4 + 1×2^2 + 1×2^1 + 1×2^0 = 256+64+16+4+2+1 = 343(十六进制转换为十进制) 3A5B=3×16^3 + Ax16^2 + 5×16^1 + Bx16^0 = 3×4096 + 10×256 + 80 + 11×1 = 12288+2560+80+11=14939(十六进制转换为二进制) 41=0100 000116进制的1位数代表2进制的4位数(二进制转换为十六进制) 11010110 = B6四个数为一组(1101)= 1×2^3 + 1×2^2 + 1×2^0 = 13=B,(0110)= 1×2^2 + 1×2^1 = B6(十进制转换为二进制) 13=1101余数=被除数-除数*商13/2(商6 余数1),6/2(商3 余数0),3/2(商1 余数1),1/2(商0 余数1)规律:不断除以2,保留余数,商为0时不再除以2,将所有余数倒序排列。(十进制转换为十六进制) 138=8A138/16(商8 余数10 A),8/16(商0 余数8)规律:不断除以16,保留余数,商为0时不再除以16,将所有余数倒序排列。$int = 1+2+"23+4" = 26; ascii码转换: chr(65) == A; ord(A) == 65; $a = array(1=>5,5=>8,22,2=>'8',81); $a[7] == 81 //前一个最大下标加2 $a[6] == 81 //前一个最大下标加1 $a[3] 不存在,空 $a[bar] = 'hello'; $a[bar] 和 $a['bar'] 结果一样hello;位运算:echo 1>>0; // 001 ==>1 echo 2>>1; // 010 ==> 001 => 1 二进制向右移动1位,结果转十进制 echo 3<<2; // 011 ==> 01100 => 1x2^3+1x2^2=12 二进制向左移动2位,结果转十进制echo 可以打印多个参数,print不可以十七·下面能正确输出yellow的结果有哪些:$fruits = array('apple' =>'red','banana' =>'yellow'); echo "A banana is {$fruits[banana]}"; echo "A banana is {$fruits['banana']}"; echo "A banana is $fruits[banana]"; heredoc: $str=<<<str this is string str; echo $str;以上等同于$str=”this is string”;十八·什么是面向对象,主要特征是什么?也就是我们常说的OOP,以对象为中心的程序设计思维或者方式,好处是有两个成员组成,成员属性和成员方法,提高代码重用性,避免代码冗余度三大特征:封装,继承,多态十九·session和cookie的区别是什么,请从协议,产生的原因与作用说明?cookie数据存放在客户端的浏览器上,session数据放在服务器上,cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗考虑到安全应当使用session,session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能考虑到减轻服务器性能方面,应当使用COOKIE,单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie,将登陆信息等重要信息存放为SESSION, 其他信息如果需要保留,可以放在COOKIE中二十·HTTP状态中的200,302,304,403,404,500代码含义?200:成功访问,并返回数据302:重定向304:缓存未过期403:服务器拒绝访问,Apache权限拒绝访问404:访问的页面不存在500:服务器内部错误linux压缩:tar czf text.tar.gz test.phplinux解压:tar xzf test.tar.gz
2019年07月10日
6,582 阅读
0 评论
2 点赞
2019-07-10
PHP经典面试题汇总(一)
一· 用php获取当前时间并打印,打印格式:2017-3-25 22:20:21?echo date('Y-n-d H:i:s'); //月份未满十不补零,二十四小时制 echo date('Y-m-d h:i:s'); //月份未满十补零,十二小时制二· 字符串转数组,数组转字符串,字符串截取,字符串替换,字符串查找的函数分别是什么?1)字符串转数组:$str = 'www.baidu.com'; print_r(str_split($str,3)); print_r(explode(".",$str));2)数组转字符串:$arr = array('aaa','bbb','ccc'); echo implode('',$arr); echo join(' ',$arr);3)字符串截取:$str = "这是一个字符串this is a string!"; echo substr($str,0,4); //截取英文字符串 echo mb_substr($str,0,4,'utf-8'); //按照字符个数截取字符串 echo mb_strcut($str,0,6); //按照字节数截取字符串(中文三个字节为一个中文字)4)字符串替换:$table_change = array('you'=>'her sister','Love' => 'hate'); echo strtr("I Love you",$table_change); //比str_replace快四倍,区分大小写,但是这个函数挺麻烦,不能替换为空,可以替换空白 $bodytag = str_replace("%body%", "black", ""); //区分大小写 echo $bodytag; $str = "linux is very good server for php"; echo preg_replace('/linux|php/','java',$str); //使用正则替换5)字符串查找:$str = "/web/b/c/index.html"; echo strpos($str,'/'); //查找第一个出现的位置,返回位置数 echo strrpos($str,'/'); //查找最后一个出现的位置,返回位置数 $pos = strrpos($str,'/'); echo substr($str,$pos+1); //截取路径里面的文件部分 echo substr($str,0,$pos); //截取路径里面的目录部分 echo basename($str); //获取路径中的文件名 echo dirname($str); //获取路径中的目录 $str = "pap is pbp and pcp or pdp"; preg_match_all('/p.p/',$str,$ms); //正则匹配,返回数组 echo "
2019年07月10日
6,588 阅读
0 评论
5 点赞
2019-07-10
linux定时任务的设置与使用
定时任务命令:1· 定时任务服务提供crontab 命令来设定服务。2· crontab -e //编辑某个用户的cron服务。3· crontab -l //列出某个用户cron服务的详细内容。4· crontab -r //删除每个用户的cron服务。例如:*/1 * * * * php /data/www/cron.php //意思是每分钟执行cron.php50 7 * * * /sbin/service sshd start //意思是每天的7:50开启ssh服务30 7 8 * * ls //意思是每月8号的7:30分执行ls命令分 时 日 月 星期 命令0-59 0-23 1-31 1-12 0-6
2019年07月10日
5,955 阅读
0 评论
1 点赞
2019-07-09
高性能网站架构方案
高性能网站架构方案,用以优化网站响应时间,实现大型网站技术架构方案。无论是电子商务或者其他网站且可使用。一、优化网站响应时间的架构方案: 网站能不能留的住用户,一方面是看内容,另一方面是看响应时间。通常有以下几个方式来降低网站响应时间: 1、减少HTTP请求。包括合并css和javascript。减少图片数量,比如利用css的偏移技术来在一个图片中选择不同的位置内容。利用浏览器的Cache功能,我们可以在头中声明是否被浏览器缓存。 2、动态内容静态化。比如永久生成HTML文件。生成静态文件并设定生存时间,到期后查询新的动态内容进行替换。 3、优化数据库。数据库的性能对于项目整体性能中是重中之重。设计良好的Mysql比乱糟糟的Mysql性能高出N个数量级,更别论再引入NOSQL了,比如Redis,MongoDB。 4、使用负载均衡。将请求合理的分发到更多服务器。 5、使用缓存。把花费时间和资源成本高昂的计算结果取出缓存起来,避免重复计算。比如在Mysql前面挡一层Memcached。比如生成一个文件,使用的时候include进来。再比如PHP中的OPCACHE等。二、压力测试的架构方案: 吞吐率是指单位时间内处理的请求数,单位reqs/s。最大吞吐率是指单位时间内能够处理的最大请求出。模拟足够多的人数和并发请求来测试最大吞吐率的方法叫做压力测试。比如Apache自带的ab(Apache Bench)。ab的参数很多,常用的有请求数(-n),并发用户数(-c),超时时间(-t),长连接(-k),附件一个Cookie(-c name=value)$ab -c 10 -n 1000 http://localhost/三、长连接的架构方案: 每次请求都需要TCP的三次握手,握手完比表示连接正式联通,之后再发送数据。那么,把N个请求,就需要3N次握手,传递N次数据,得到N次响应,总共5N。如果把N个请求合成一个请求,就是3次握手,1次传递数据,1次返回响应,共5次。但是,有时候我们需要上一次响应的返回结果来发送新一轮的请求,在这个时候,合并请求并不好实现,这就需要长连接。使用起来很简单,在头中包含如下:Connection: Keep-Alive 客户端和服务器端都可以设置长连接的最大时间,当两者不统一时以小的一方为准。开启长连接后进行压力测试:$ab -c 10 -n 1000 http://localhost/ 发现提升不止三五倍。本机是提升了8倍的性能。四、提高Mysql的响应速度的架构方案: Handlerocker是日本的一位架构师开发。Mysql的一种插件。Handlerocker实现了绕过Mysql的SQL解析层。在Mysql5.1以上版本可以使用,详情可以查看Mysql手册。这里就不在阐述。五、Mysql主从复制的架构方案: 在分布式部署中,1台主库,N台从库。主库只写,从库只查。主库从库数据需要实现统一,这就是主从复制。优点是: 1、从库备份时,主库可以继续处理更新。 2、优化响应时间。 3、增加健壮性。主库挂了可以切换到从库作为备份。 主从复制的实现过程有三步,1个在主库,2个在从库: 1、主库服务器将用户对数据库更新的操作以二进制格式保存到Binary Log日志文件。然后Binlog Dump线程将Binary Log日志文件传输给从库服务器。 2、从库服务器通过一个I/O线程将主库服务器的Binary Log日志文件中的更新操作复制到一个叫做Relay Log中的中继日志文件中。 3、从库服务器通过另一个SQL线程Relay Log中继日志文件中的操作依次在本地执行,从而实现主从数据库之间数据的同步。 本篇只是简单的列出方案,详细的配置和实现步骤将在另一篇中写到。六、代理的架构方案: 读取内存的速度是读取硬盘的100000-1000000倍。把访问过的页面缓存在内存中,下次直接从内存中读取,可以有效加速。 1、传统代理。客户端发送请求给代理服务器,代理服务器向WEB服务器取到数据并返回给浏览器。代理服务器就是一个有大的存储空间的Cache。 2、反向代理。和传统代理原理类似,只是使用对象不同。传统代理的使用对象是客户端,反向代理的使用对象是服务器。用户通过反向代理访问Web服务器,Web服务器是隐藏起来的。不过用户不关心这些,权把代理服务器当作真实的Web服务器。反向代理有Vamish。七、异步计算的架构方案: 比较耗时的比如将用户上传的文件分发到多台机器,比如裁剪图片,视频转码等。可以使用异步方案。让用户无须等待计算结束而是先行返回结果。代表产品有和Me
2019年07月09日
10,013 阅读
0 评论
2 点赞
2019-07-04
数据结构与算法视频教程
提取码:964a 数据结构:是指相互之间存在一种或多种特定关系的数据元素的集合用计算机存储、组织数据的方式。数据结构分别为逻辑结构、(存储)物理结构和数据的运算三个部分。为什么要学数据结构? 首先,因为数据结构作为计算机专业的专业基础课程,是计算机考研的必考科目之一,如果打算报考计算机专业的研究生,你必须学好它;其次,数据结构是计算机软考、计算机等级考试等相关考试的必考内容之一,想要顺利通过这些考试,你也必须学好它;最后,数据结构还是你打算今后学习计算专业其他课程的基础,如操作系统、编辑原理、数据库管理系统、软件工程、人工智能等。总而言之,你既然已经与计算机接轨就必须掌握好它。如何学习数据结构? 对于初学者来说,数据结构是门概念上比较抽象的课程,不是太容易掌握,需要构思和理解。万事开头难,只要你掌握了学习这门课的方法和技巧,就会变得很容易了。不管学什么,首先应该做好充分的心理准备,建立好自信心,拥有一颗战胜困难的决心,才能不畏惧、不退缩,直至胜利归来。其次,就是最好有C语言基础,这样学起来事半功倍,当然没有C语言基础也行,可以一边学数据结构一边巩固C语言知识。最后,就是多动手!多动手!多动手!重要的事情说三遍!只有亲自动手上机操作或用笔在纸上画画写写才能加深映像,方便理解记忆。
2019年07月04日
11,706 阅读
0 评论
63 点赞
1
...
27
28
29
...
36