首页 开发编程 正文

php照片怎么压缩

想判断某个文件是否被修改(网上常见某些恶意软件的做法),只需要50小时就能掌握任意一种web框架各类web框架大同小异:搞定一条打个勾web框架学习列表如何定义urlrouter如何组织requesthandler函数写一个最简单的requesthandler函数如何从get/post请求中取出参数如何定义全局url拦截函数如何获取/...

php照片怎么压缩,下载下来的zip压缩包?

通常来说,想判断某个文件是否被修改(网上常见某些恶意软件的做法),一般可以使用MD5验证的方法,建议你也可以这么做。

假设,下载的源ZIP是正确的,可以用源zip的MD5码跟下载后的MD5码进行比较,如果一致,就是正常的,如果不一致,那就可能经过了修改。当然,不一致并不代表一定是ZIP文件就损坏了,但通常来说,跟源文件不一致,也就足以说明有问题了。

如何学习Web开发?

web framework层出不穷,特别是ruby/python,各有10+个,php/java也是一大堆 根据我自己的经验写了一个to do list,按照这个清单,一条一条的学习,事半功倍,很快就能掌握 一共25条,即便很磨蹭,2小时也能搞定一条,25*2=50。只需要50小时就能掌握任意一种web框架各类web框架大同小异:现代web开发框架的6大元素,把握主线,就不会迷路

建议把本文打印到一张A4纸,搞定一条打个勾

web框架学习列表 如何定义 url router如何组织 request handler 函数写一个最简单的request handler 函数如何从get/post请求中取出参数如何定义全局url 拦截函数如何获取/修改/存储 cookie,session数据如何修改/输出 http header 数据如何部部署app 程序服务器部署可以参考读python web 程序的9种部署方式如何配置开发环境如何配置静态文件访问如何访问数据库是否支持ORM支持orm如何维护表结构的变更如何定义/组织/初始化 数据表如何对接orm系统和现有的表结构掌握最基本的add/delete/按字段查询/count/slice/order by如何直接使用sql 访问数据库不支持orm (这样的web框架,不用也罢)如何使用模板系统如何组织/访问 模板文件的目录结构如何在模板中嵌入代码模板是否支持继承结构模板之间如何include如何自定义模板函数如何通过http get/post 获取远程数据如何parse json如何parse xml如何输出为 json如何处理状态码:404和50x如何处理文件上传可选的学习项目 发送emaillog图片处理误区 表单验证辅助函数,很多框架的表单验证部分实现的特别复杂,初学者完全不需要,手写代码处理就够用ORM中的hasone,manytomany,onetomany关系,概念很复杂,其实只是多写/少写一个查询字段的关系,学习成本太高,初学者完全不需要理会,直接跳过。

如何快速学习一个WEB开发框架http://www.pcpob.com/article/view/1939-how-to-study-a-web-framework

如果已经学会了一个PHP框架,再去学习其他php框架,那么会很容易上手。但是如果还没有php框架基础,想去学习php框架,往往是一头雾水,不知道从哪里下手,从我学习php框架的经验,给大家分享一下,如何快速的去学习并掌握一个框架。一,选择一个合适的php框架 在国内,使用zf,ci和tp框架的人比较多,新手可以从中选一个去学习,新手不建议一开始就去学习zf,功力还不够深,学习zf会让你更迷茫。如果php基础实在太差,学习ci和tp都觉得有点难度,那么建议去学习一下我做的框架--canphp框架(简称cp,qq群:74781204),cp=ci+tp的结晶,更为简单,更容易理解。二,选定一个php框架之后,如何去学习第一步,把下载回来的框架压缩包解压,然后把每个目录和文件名,大致的浏览一遍。这样可以大概看出,这个php框架中大致布局和具有哪些功能。第二步,学习输出hello world,hello world很简单,但是对于学习一门新的语言或框架,很重要。第三步,学习理解单一入口和网址解析(即网址路由),单一入口,对于新手来说,可能有点不太好理解。第四步,学习php框架的内置的模板操作,主要学习程序是怎么赋值给模板,怎么加载模板和常用的模板标签第五步,学习数据库的添加,修改,删除,查询,学会简单的数据库操作。第六步,学习php框架常用的函数和类库,php框架中一般会带一些常用的函数和类,可以稍微看一下,此时还没有必要深入研究,等用到的时候再详细的去看手册和样例。第七步,下载基于此框架开源的项目系统下来学习,了解了php框架的执行流程,模板操作,和数据库操作,下载一个开源的系统,下来去学习,学习别人的代码,学得更快。第八步,做项目学习,要熟练掌握一个的框架,需要大量的实践,通过做项目,去深入学习。第九步,阅读框架代码,了解其实现原理

第十步,到这一步,你已经学会了这个php框架。

在StackExchange上有人问了这样一个问题:What should every programmer know about web development?(关于Web开发,什么是所有程序员需要知道的?)里面给出的答案非常不错,所以,我翻译转载过来。 顺便说一下,StackExchange真是非常好,大家可以对同一个答案做贡献和修订,看看这个问题的修订过程你就知道了——专业的问答网站应该怎么去做。这就是我在这篇文章中也说过真正的用户体验是什么样的。

好了,下面是正文(我对原文做了一些批注,也许不对或有误导,请大家指正)

下面的这些东西可能对于大多数人并不陌生,但是可能会有些东西你以前并没有看过,或是没有完全搞懂,甚至都没有听说过。(陈皓注:我相信当你看完这个列表后,你会觉得对于我国的Web开发有点弱了,还是那句话,表面上的东西永远是肤浅的)

接口和用户体验

小心浏览器的实现标准上的不一致,确信让你的网站能够适当地跨浏览器。至少,你的网站需要测试一下下面的浏览器:最新的 Gecko 引擎 (Firefox),一个 Webkit 引擎 (Safari,Chrome, 或是其它的移动设备上的浏览器)IE 浏览器 (测试IE的兼容性你可以使用微软IE的Application Compatibility VPC Images)Opera 浏览器。

最后,你可以使用一下这个工具 来看看你的网页在不同的浏览器下是怎么被显示出来的(陈皓注:这个工具就是以前本站介绍过的在不同浏览器和平台上检查你的网站的兼容性)

多考虑一下人们是怎么来访问你的网站而不是那些主流的浏览器:手机,读屏软件和搜索引擎,例如:一些Accessibility的东西: WAI 和 Section508, 移动设备开发:MobiForge.部署Staging:怎么部署网站的更新而不会影响用户的访问。 Ed Lucas的答案 可以让你了解一些(陈皓注:Ed说了一些如版本控制,自动化build,备份,回滚等机制)。千万不要直接给用户显示不友好的错误信息。千万不要把用户的邮件地址以明文显示出来,这样会被爬虫爬走并被让用户的邮箱被垃圾邮件搞死。为用户的链接加上 rel="nofollow" 的属性以 避免垃圾网站的干扰。(陈皓注:nofollow是HTML的一个属性,用于通知搜索引擎“这个链接所指向的网页非我所能控制,对其内容不予置评”,或者简单地说,该链接不是对目标网站或网页的“投票”,这样搜索引擎不会再访问这个链接。这个是用来减少一些特定垃圾页面对原网站的影响,从而可以改善搜索结果的质量,并且防止垃圾链接的蔓延。)为网站建立一些的限制 这个属于安全性的范畴。(陈皓注:比如你在Google注册邮箱时,你一口气注册超过两个以上的邮箱,gmail要求给你发短信或是给你打电话认证,比如Discuz论坛的会限制你发贴或是搜索的间隔时间等等,更多的网站会用CAPTCHA来确认是人为的操作。 这些限制都是为了防止垃圾和恶意攻击)学习如何做 Progressive Enhancement. (陈皓注:Progressive Enhancement是一个Web Design的理念,如:1)基础的内容和功能应该可以被所有的浏览器存取,2)页面布局的应该使用外部的CSS链接,3)Javascript也应该是外部链接还应该是unobtrusive 的,4)应该让用户可以设置他们的偏好)如果POST成功,要在POST方法后重定向网址,这样可以阻止用户通过刷新页面重复提交。严重关注Accessibility。因为这是法律上的需求(陈皓注:Section 508是美国的508法案,其是美国劳工复健法的改进,它是一部联邦法律,这个法律要求所有技术要考虑到残障人士的应用,如果某个大众信息传播网站,如果某些用户群体(如残疾人)浏览该网站获取信息时,如果他们无法正常获得所期望的信息(如无法正常浏览),那可以依据相关法规,可以对该网站依法起诉)。WAI-ARIA 为这方面的事提供很不错的资源.

安全

在网上有很多关于安全的文章,但是 OWASP 开发指导 涵盖了几乎所有关于Web站点安全的东西。(陈皓注:OWASP(开放Web应用安全项目Open Web Application Security Project)是一个开放的非营利性组织,目前全球有130个分会近万名会员,其主要目标是研议协助解决Web软体安全之标准、工具与技术文件,长期 致力于协助政府或企业了解并改善网页应用程式与网页服务的安全性。OWASP被视为Web应用安全领域的权威参考。2009年下列发布的美国国家和国际立法、标准、准则、委员会和行业实务守则参考引用了OWASP。美国联邦贸易委员会(FTC)强烈建议所有企业需遵循OWASP十大WEB弱点防护守则)

phpmyadmin怎么导入数据表?

MySQL数据库的导入,有两种方法:

1) 先导出数据库SQL脚本,再导入;

2) 直接拷贝数据库目录和文件。 在不同操作系统或MySQL版本情况下,直接拷贝文件的方法可能会有不兼容的情况发生。 所以一般推荐用SQL脚本形式导入。下面分别介绍两种方法。 2. 方法一 SQL脚本形式 操作步骤如下: 2.1. 导出SQL脚本 在原数据库服务器上,可以用phpmyadmin工具,或者mysqldump命令行,导出SQL脚本。 2.1.1 用phpMyAdmin工具 导出选项中,选择导出“结构”和“数据”,不要添加“DROP DATABASE”和“DROP TABLE”选项。 选中“另存为文件”选项,如果数据比较多,可以选中“gzipped”选项。 将导出的SQL文件保存下来。 2.1.2 用mysqldump命令行 命令格式 mysqldump -u用户名 -p 数据库名 > 数据库名.sql 范例: mysqldump -uroot -p abc > abc.sql (导出数据库abc到abc.sql文件) 提示输入密码时,输入该数据库用户名的密码。 2.2. 创建空的数据库 通过主控界面/控制面板,创建一个数据库。假设数据库名为abc,数据库全权用户为abc_f。 2.3. 将SQL脚本导入执行 同样是两种方法,一种用phpMyAdmin(mysql数据库管理)工具,或者mysql命令行。 2.3.1 用phpMyAdmin工具 从控制面板,选择创建的空数据库,点“管理”,进入管理工具页面。 在"SQL"菜单中,浏览选择刚才导出的SQL文件,点击“执行”以上载并执行。 注意:phpMyAdmin对上载的文件大小有限制,php本身对上载文件大小也有限制,如果原始sql文件 比较大,可以先用gzip对它进行压缩,对于sql文件这样的文本文件,可获得1:5或更高的压缩率。 gzip使用方法: # gzip xxxxx.sql 得到 xxxxx.sql.gz文件。 提示输入密码时,输入该数据库用户名的密码。 3 直接拷贝 如果数据库比较大,可以考虑用直接拷贝的方法,但不同版本和操作系统之间可能不兼容,要慎用。 3.1 准备原始文件 用tar打包为一个文件 3.2 创建空数据库 3.3 解压 在临时目录中解压,如: cd /tmp tar zxf mydb.tar.gz 3.4 拷贝 将解压后的数据库文件拷贝到相关目录 cd mydb/ cp * /var/lib/mysql/mydb/ 对于FreeBSD: cp * /var/db/mysql/mydb/ 3.5 权限设置 将拷贝过去的文件的属主改为mysql:mysql,权限改为660 chown mysql:mysql /var/lib/mysql/mydb/* chmod 660 /var/lib/mysql/mydb/*

php会被代替吗?

php是否会被代替?

这不是一个值得担忧的问题。

在大数据和人工智能对性能要求极高的时代,php在web程序的低位不会受到什么影响。

其实,任何程序语言,都有它适合的领域,一个程序语言是否会被取代,主要在于取代者是否有足够低的学习与使用成本,以及更高的执行效率。

这种担忧,在对于所有高级语言来说都会出现。

我们需要了解一下,高级语言、低级语言、语言编译之间是一种什么样的关系?

高级语言和低级语言的关系

高级语言,简单来说,就是用越少的代码,就能完成最多功能。

例如,php的fopen('\a\b\test.txt');打开文件,它的执行,调动了文件系统的路径搜索,文件存在判断,文件数据定位等多个操作。从硬件层面看,还调动了磁盘驱动、磁盘读写。

C、VC、VB、

C.NET

、java、php这些语言都是高级语言,它们都能够让人容易理解和记忆。

越高级的语言,越容易有漏洞和被入侵,这往往是语言开发者,人,无法考虑到所有可能性带来的安全疏漏。

低级语言,简单来说,就是用代码辅助记忆和理解机器指令功能的语言。

例如,汇编语言,它是机器指令的直接表达形式。

汇编语言、机器码语言都是低级语言,它们不容易让人理解,但能准确体现CPU执行的具体操作内容。

越低级的语言,越没有漏洞,因为越低级越贴近CPU的机器指令,然而一个CPU能执行的机器指令是有限的。

高级语言的一条指令,是由无数条低级语言的指令组合构成;高级语言是低级语言的封装,而低级语言是高级语言的解释。

语言编译——高级语言的灵魂

编译,是高级语言和低级语言以及机器指令的连接器。

高级语言的语法,往往都是由编译器决定的。

无论那种高级语言,最终的目标,都是汇总到机器指令那个层面。

如果没有编译,那么高级语言将不存在。

最早的编程,就是使用机器指令直接编程,后来发现,有一些特定的操作总是使用相同的机器指令组合完成,于就把这个操作用一词语来表示,便有了最早的高级语言“C语言”。

对于大数据和人工智能对性能要求极高的时代,越高级的语言,并非是性能最高的。

只有越贴近数据元素或人工智能信息元素,进行处理的语言才是性能最高的。

因为越高级的语言,封装层次越多,无效执行的代码就会越多。

所以,不必担忧某个程序语言会被取代。

在选择程序语言上,重点是看,它是否能最直接的操作信息元素。

比如,语言识别程序,要用C语言写就会力不从心,因为C语言,没有封装音频采集和波形分析,更别说语意分析。但是用C语言写一个硬件控制,则会比其他更高级的语言来说,有更高的执行效率,也就是更高的性能,因为C语言的下一层就是汇编语言,更贴近硬件这个操作元素。

就分享这么多,有点离题,欢迎留言探讨。

单反相机入门基础?

话不多说,先给题主介绍下单反参数以及成像原理:

单反主的参数都是用来完成图片的曝光的。

主要有参数有快门速度(s)、光圈(AV)、感光度ISO、焦距、曝光补偿

快门速度越快,代表曝光时间越短,高速快门主要用来拍体育运动,而低速快门就可以用来拍星空、光轨。(低速快门成片)

光圈数值越大,光圈就越小。光圈的大小可以控制相机进光量,光圈越大,景深越小(大虚化)。大光圈镜头适合在晚上拍照。(大光圈成片)

ISO代表传感器的感光度,ISO越低画质越好,高ISO容易产生噪点。光线充足的情况下最好用低ISO,夜晚拍摄可以开高一点。

(ISO3200 夜间拍摄)

焦距可以简单的理解为放大倍数,焦距主要用来构图,短焦距适合拍全景图,长焦距适合拍特写。焦距越长,虚化越好。

(原厂镜头 焦距135拍摄效果)

我玩摄影大概三四年了吧,进了摄影这个圈子后,身边多了一大堆玩摄影的好友,有初入坑的小白,也有玩了十几年的“老法师”。他们给我最大的感受就是:摄影从来不以资历和器材论英雄。

有的影友虽然初接触摄影一两年,但是通过系统的前期、后期学习,多拍多思考,摄影技术在短短一两年内就有了质的飞跃。

有些朋友玩了十几年,设备器材一大堆(俗称器材党),但拍出来的照片也就那样。究其原因,到底是因为他们不愿意通过系统的学习,不屑于看什么教程,甚至有些人对后期处理嗤之以鼻。也也不喜欢看大师优秀片子,只愿意呆在自己画的圆圈里,审美水平自然就上不去。

摄影菜鸟如何成为高手,我觉得跟读书学习是一样的,还是要保持思考,保持谦卑之心,要系统和全面地学习,现在都是开源时代了,网上一搜,很多摄影师出的各类摄影教程。还有一点就是,多看看大师作品,按下快门之前想思考一下该如何去构图,可以用到哪些创意。

(图虫网的摄影教程)

摄影别懒,一定要多拍多练,别吝啬你的快门,在失败中总结经验,在一次次满意中不断前行!

本文转载自互联网,如有侵权,联系删除