分类文档:编程 208篇

程序成品的书写风格问题
2021年02月02日 11:40

如下列截图的画红圈部分(点击图片可显示全图),我在开发中一直都是这种书写方式。我喜欢把关联性强的语句,都写在同一行,用;号隔开。如画红圈的这片程序,如果换成流行的每句都回行,变量名用有含义的变量名,这片程序需要2页以上。类似的情况,有很多这样的程序篇帖容量,换成流行的每句都回行、长变量名需要3、4页。正是这种短篇幅、短变量名,我个人的体会是,才使开发速度提高到原来的2~3倍,越是复杂的程序,这种方式的优势越明显。

……

固定链接 | 发表评论(5) | Trackback(0)

如何更快地缩短程序开发时间
2021年02月02日 11:20

之所以会提出更快地缩短,是因为有时候不恰当的开发顺序,会浪费很多的开发时间。因为开发网页的顺序,按照正序,一般是先写前台页,再写后台的数据库写入程序,大多数网页程序都是按照这个顺序。

但是对于一些字段的构思较为复杂的时候,就必须把顺序对调。要先写数据库写入程序,再写前台页。否则,如果先写前台页,是很难按照字段的数量去写,这样会浪费很多时间去做很难实现的构思。尽管数据库写入程序有时较复杂,但这部分一旦完成,前台的数据调用页的思路会清晰很多,可以节省3~7天的开发时间。……

固定链接 | 发表评论(1) | Trackback(0)

如何用安卓手机预览手机版网页?
2021年01月27日 08:01

这是大约一年前有人在v2ex问的问题。我做手机版网页是从2017年开始,之后做的新网页都同时做PC版、手机版。每个网页,都用同一个URL,由PHP来判断浏览器的UA是PC浏览器、还是手机浏览器,然后产生相应的样式表的字体大小、宽度。还有一些区域,PC版和手机显示的内容不同,少量不同用判断语句,不同的内容如果是较大的区域,就用include不同文件的方式。

PC版、手机版的样式表大部分一样,只有部分字体大小,部分宽度不一样。也有人喜欢把网页做成响应式网页来自动适应PC版、手机版,各有利弊,响应式网页设计更复杂,并不见得很实用,所以我没有采有这种方式,用判断浏览器类型的方式反而简单、灵活一些。……

固定链接 | 发表评论(3) | Trackback(0)

Debian 8+sury,已不支持PHP 7
2021年01月25日 15:22

最近发现Debian 8的PHP 7第三方源,sury已刚刚删掉了PHP 7的安装组件链接上的文件,意味着Debian 8已经不能用sury的方法安装PHP 7.X。Debian 9和Debian 10,仍然能正常安装。

Debian通过sury来安装PHP 7.X,可以直接用命令安装,不需要手动编译,很方便,成功率100%。……

固定链接 | 发表评论(4) | Trackback(0)

再谈PHP与其它语言相比的优点
2021年01月15日 10:30

本文主要涉及开发速度和日常使用的性能需要,也顺便提一下后台语言Node.js。前几天在V2EX看到有篇帖子是对比PHP和Golang,里面提到有人唱衰PHP。我做PHP编程的时间比较长,2009年至今。之前2002年~2009年都是做ASP编程,因为在那个时候,Web语言主要就是ASP、PHP、CGI,后来相继出现JSP、ASP.net,再后来又有了Golang、Python。

在性能方面,在解释型语言里,PHP应该是属于出类拔萃的。PHP的瓶颈,主要是MySQL,所以会给人一种效率低的印象,并且使并发量大为降低,解决的办法是不用MySQL,而且MySQL备份也很麻烦,备份文件是一个比原数据要大得多的庞大的xml文件。PHP的语法和JavaScript这两者其实有95%以上相似,前面已经对比过了,前文1前文2。所以如果是为了追求JavaScript语法,完全不用学习Node.js,PHP和JavaScript的语法两者就高度相似。……

固定链接 | 发表评论(12) | Trackback(0)

分天完成的力量
2021年01月14日 22:27

去年年底开始构思一个特殊技能的新项目,大约是2020年12月30日开始的,是一个线下的项目。第2天构思域名,当天完成。宣传资料写了几天完成,7页A4纸的内容。项目的资料,1月9日中午开始写,一下午写了7500字,并在当天修改了几次(现在达到8900字,13页A4纸)。

然后开始设计海报、做这个网站平台。这个平台有个不大不小的程序,程序已经写了有三四天,每天编程6~8小时,已经完成90%了。这得力于我的第一职业是编程,把以前写了好长时间的模块嵌入进去,省了很多时间。于是我想到3件事情:……

固定链接 | 发表评论(4) | Trackback(0)

总结(续2)
2020年12月20日 11:15

前一文对2020的总结就是很平静。2010年比尔·瑞恩在Camlot工程的一期节目里,精准地预言了今年发生的这个病毒的事件和预知的过程,视频地址:百度关键词“盎格鲁 撒克逊 计划 视频”,看完视频后能够体验到什么是震憾。但这个计划目前是被解除了,这个计划是要清除到世界只剩5亿人口。

因为这一年很平静,没有什么值得回顾,所以就回顾一些往年、历史的事件。2008年时我突然读懂了1984年在美国出版的《一的法则》里讲述的几个重大事件(该书是高维外星生命的问答录)。最大的事件,在过去的10多年里我已经谈过不下50次,该事件(第四维度)尚未发生。还有一个事件与之相比不算是大事件,但它是世界八大奇迹之首──埃及金字塔,有很多惊人的数字巧合。《一的法则》有对埃及金字塔的很多解答。简单地说,埃及金字塔并非人类建造,它是高维外星生命用他们的高等技术建造而成,于6000年前开始建造。……

固定链接 | 发表评论(5) | Trackback(0)

2020年总结
2020年12月16日 22:44

本文是《2019年总结》的延续。这一次尽量简短,因为此时我刚好进入不惑之年,每天总感觉时间过得越来越快、时间越来越少,尤其是身体健康在骤降。首先第一个话题是https是一个很底层的选择,之前已经写过3篇相关的长文,使用https的弊大于利,尤其是流量大的站点。ping值在150ms以上的服务器,访问常会多延迟3~5秒。

回顾最近10年里,最特殊的一年是2018年,气候十分异常。炎热无比,2018年秋天发生了一场史诗级16级“山(隔开)竹”台风。2018年同一年,曾仕强、李敖、金庸、单田芳等大师,李咏、臧天朔等名人,都离世。2019年,非常平静。2020年虽然世界各国爆发了疫(隔开)情,但是从气候上看来,今年依然非常平静。国内的疫(隔开)情,早已迅速恢复了正常。……

固定链接 | 发表评论(5) | Trackback(0)

掉头发的超难算法的解决(2)
2020年06月17日 17:37

程序设计约90%以上都是数学问题。这个难题是,刚需应用中,例如有42节不同内阻的锂电池,内阻为19mΩ~22mΩ,每3节并联,组成14串,要求并联后的这14串的内阻相近,越相近越好。

理论上,如果能把所有的排列方法都罗列出来,并自动计算并联后的电阻,14串的电阻和,与42节单节的总电阻÷3,这2者的差最小,就是一致性最好的组合,一般可以达到0.03mΩ~0.10mΩ以内。但是,罗列出这个排列的组合,是一个很复杂的循环程序公式,42个数字、每3个为1组的组合方式,可能会达到几百亿种以上。更何况84个、102个、136个数字,排列的组合,会达到几百亿种×N倍×N倍×N倍×N倍……,是一个天文数字。……

固定链接 | 发表评论(0) | Trackback(0)

遭遇到了一个令人掉头发的超难算法
2020年06月17日 12:44

程序设计约90%以上都是数学问题。昨天遭遇到了一个令人掉头发的超难算法,直到现在眼睛和头都特别不舒适。虽然我知道这个难题早晚能解决,有一定的线索,预计也许3-7天就能破解了。2005年~2008年时我做的一个电子型号搜索项目,更难,花了2年多才完成算法。

这个新的难题是,做锂电池内阻配对程序。例如有42节锂电池,做3并14串,每节的内阻都不同,从18mΩ~23mΩ。过去很多人认为是把电阻大的并联在一起,内阻小的并联在一起。这样做,因为分压的原因,在大功率的电动汽车/电动车上,先消耗内阻大的电池、且内阻大的电池发热大。正确的做法是,求出42节平均内阻,每3并的内阻值都尽量接近42节的平均值除以3,这样得到的14串的内阻的差别是0.0XmΩ的差距,而首尾相接的算法就简单很多,差别是0.0XmΩ~0.1XmΩ。这个排列的计算量有多大呢?42节电池的排列方法有可能会在几万种~100万种。……

固定链接 | 发表评论(0) | Trackback(0)

写在编程的第18年
2020年02月26日 11:59

这一篇可以写很多,又觉得无话可说,因为写博客本身会占用太多的时间,有时也不愿意写博客。在社会中总是有人会关注我是做什么的,不断地总是有人问在哪里工作、做什么的,那么只好从这段难忘的十几年的工作经历中,选出一个最恰当的身份:编程。

其实我对这项工作,既热爱,又感到无限地乏味。我是一名Web程序的独立开发者,编程中大多数是运算、算法的设计和构思。独立开发者和团队协作的开发,各有长处、也各有短处。……

固定链接 | 发表评论(8) | Trackback(0)

PHP VS Excel
2019年12月13日 12:42

最近在工作中需要用到Excel。我发现凡是Excel能够实现的功能,PHP也可以通过编程来实现完全一样的绝大部分的功能。并且,PHP可以随心所欲,更加灵活。

例如需要实现一个功能,当复制一些 公司/商店 名称的时候(一行一个名字),PHP可以批量自动显示数据库里已有的客户地址、电话、联系人,字段间用Tab符(\t)隔开。然后将显示的结果,一次复制到Excel中。否则,如果没有这个PHP的功能,只能一个一个客户名查询,很繁琐。……

固定链接 | 发表评论(11) | Trackback(0)

干货分享:站内搜索引擎的分词算法的数据库设计方案
2019年11月03日 11:48

在程序开发之前,脑中需要有一个主线的方案,整个程序都是在围绕这个方案。就在前天写《网络创业的几个新思考》到昨晚,共经历了30多个小时,突然有了一个新的方案。

这个方案,虽然还不能完全实现巨量数据的标题关键词任意快速搜索,但是可以实现带有空格的分词快速搜索,因此基本上已经可以实现类似淘宝的产品快速搜索,这适用于产品类、关键词分类的搜索站点或平台。……

固定链接 | 发表评论(0) | Trackback(0)

“您的PHP似乎没有安装运行WordPress所必需的MySQL扩展”的通用根治办法(多系统完整版)
2019年10月08日 13:20

(本文的办法只限Linux主机) 虽然我不是Wordpress的用户,但是调试MySQL最好的办法是安装Wordpress,所以我会隔一两年、几年在本机安装Wordpress。出现“您的PHP似乎没有安装运行WordPress所必需的MySQL扩展”,虽然是一个公认的老掉牙的问题,我为了开发一键LAMP/LNMP的MySQL安装部分,经过这几天的多系统调试,发现出现这个提示,并没有大家想象中的简单,是一个有些复杂的问题,尤其是现在到了PHP 7更容易出现这个报错。

出现这个提示唯一的原因是:Linux主机没有安装MySQL扩展。……

固定链接 | 发表评论(6) | Trackback(0)

为什么近期的Shell命令每行都有分号?
2019年09月26日 10:02

单独一个Shell命令,分号可有可无。多个Shell命令可以放在一行里,多个命令之间用分号隔开,一次复制,然后回车。近期发的Shell命令,很多单独的一个命令,也有分号。

这是因为这些命令是从我编写的LAMP/LNMP一键Shell命令里复制的,由于时间的关系,来不及一一删除分号。这个一键命令是经过大量调试而写成的成品。它目前分为3大部分(3个文件),对外链接、主程序(生成Ubuntu/Debian/CentOS不同系统版本相应的一键Shell命令,由PHP+Shell完成)、后期优化程序。……

固定链接 | 发表评论(2) | Trackback(0)

成功的路上总是困难重重、千辛万苦
2019年09月11日 09:23

我从3年多以前开始用VPS之后,从那时开始学习、使用Shell命令、Shell编程。Shell命令具有最高权限,但是其功能远远不如PHP等编程语言。比如需要用命令自动修改某个文件,PHP等大多数编程语言只需打开文本文件、替换、写入这3个步骤。Shell编程要实现这3个步骤,会遇到各种困难,至今3年多,这个问题仍然没有完美解决,其困难如下:

困难1. 本来最好的方法是用cat命令加反引号,可以读取整个文件,例如a1=`cat /etc/ssh/sshd_config`; 然后替换$a1变量的数据,再写入$a1变量,这个过程就和PHP完全一样。但是问题出现了,反引号里的数值,会自动把所有的回车符,变成空格。写入的时候,所有的回车符变成了空格。因此,这个方案行不通。……

固定链接 | 发表评论(2) | Trackback(0)

开发VPS一键安装PHP环境的难题(2)
2019年09月02日 20:23

最大的难题仍然是VPS每月的重装次数严重不够用,每个VPS每月只能重装30次。今天发现KVM和OpenVZ的配置有一定的区别。我现在手里共有9个VPS,有几个是闲置、或半闲置状态,这几个都是KVM。OpenVZ空间反而一个闲置的都没有,所以必须腾出OpenVZ空间,今天把2个空间的站点互换、迁移,手动操作竟然持续了将近2个小时,太折腾了。

正是由于KVM和OpenVZ的配置有区别,所以才必须腾出OpenVZ空间来测试。Ubuntu的所有系统,安装LAMP问题较少,KVM和OpenVZ的配置几乎没有区别。……

固定链接 | 发表评论(0) | Trackback(0)

开发一键Shell命令安装VPS的PHP环境遇到的几个难题
2019年08月31日 12:51

兼容所有的系统,是巨大的挑战,也很可能是不可能完成的任务,只能做到尽可能兼容。这个自编的纯净版一键Shell命令,用了2年多,真的很好用,省去了我很多麻烦。因为我过去只用Ubuntu 12、CentOS 5,所以一直以来只兼容这2个系统。到了要发布的时候,需要兼容大多数的系统。这几天,为了测试,必须用真机重装系统,已经重装不下60次系统,VPS每月只能重装30次,其中有一个本月已经用完30次。

开发一键Shell命令安装VPS环境遇到的几个难题:……

固定链接 | 发表评论(0) | Trackback(0)

第3版的LAMP/LNMP一键安装+优化的Shell命令留念和详解
2019年08月29日 17:59

这个第3版的LAMP/LNMP纯净版的一键安装命令,是这几天重新编写,将会放在Webshu平台。此时已经能够完美兼容Ubuntu 12/14/16/18/19,以及Debian 7/8/9。但是今天发现有个小问题,Debian 9在两家不同服务商的VPS下,有一个VPS完美运行,另一个VPS安装遇到些问题。有可能是问题出在Debian 9.9的apt-get命令必须改为apt,所以今天尝试把这个命令在Linux命令行下设置为一个变量$apx,让其在Ubuntu 18和Debian 9.9下自动变成apt。

即原来的 apt update 命令,变为 $apx update。这种方式在有的系统能运行,有的系统不运行。所以,还是需要再次重构为第4版。因为第3版,以及以前的版本,都是在Linux主机下判断系统类型,然后把所有系统的Shell命令都显示出来,并根据系统的类型、判断挑选出Shell命令。这对于我来说,时间久了,这些Shell程序我都无法一下看懂,因为Shell程序我个人觉得比PHP程序难读10倍以上,尤其是程序较长的时候,一下看不懂的程序,有时候宁愿重构也不想再多花时间分析。……

固定链接 | 发表评论(0) | Trackback(0)

如何编写VPS的LAMP/LNMP的一键安装命令
2019年08月27日 08:01

Linux比Windows服务器好的一点是,Linux可以编写一键shell命令,让它全自动安装。基本的方法是,命令之间用分号;,或者&&号隔开;shell也有很多需要应答的场景,例如需要输入Y,或者输入Yes,或者需要按回车。需要输入Y,大部分是install命令,可以事先给install命令加个-y,如apt-get -y install ……,yum -y install ……。

需要自动应答的场景,很多可以用echo命令,而不需要expect也能自动答应,例如我昨天在调试Ubuntu 16+PPA+PHP 7.3的时候,就出现了一个需要按回车的应答场景,用 echo "\r" | shell命令 就能自动按回车,例如这样写:……

固定链接 | 发表评论(2) | Trackback(0)

解决PHP 7等web编程语言不报错一例
2019年07月28日 07:07

PHP的开发者必须尽快转到PHP 7平台,因为原来在PHP 5下开发的程序,有很多在PHP 7下都会报错。PHP 5的程序改为PHP 7的写法,工作量是很大的,所以开发者只能一步到位转到PHP 7平台。

PHP 7增强了数据类型;数组与变量名不能同名,如果同名,需要用$a1=array();给数组$a1清空即可解决报错,PHP 5时只要用$a1='';即可清空数组;PHP 7如果直接引用、或者判断符合条件才赋值的变量时,会报错,解决办法是提前声明这个变量,PHP 5时则不需要声明。……

固定链接 | 发表评论(4) | Trackback(0)

常用技术分享:PHP 5和PHP 7在开发中最常遇到的兼容性写法总结
2019年06月30日 11:41

PHP 7引入了强类型,在报错方面比PHP 5严格了很多。所以,很多PHP 5下开发的程序,到了PHP 7会有各种报错、无法运行。其实,只要稍加改动,原来的PHP 5程序就可以兼容PHP 7的语法,但无疑改动的工作量是难以估计的,需要对每个模块都重新测试。这种改动不像前端设计所见所得,程序由于模块数量庞大,可能会有少量改动不彻底而引发bug

服务器版的PHP的php.ini,默认是不显示报错,即display_errors=Off,所以看不到报错。程序开发当中,则必须把display_errors改为display_errors=On,根据报错内容开发、修改程序。……

固定链接 | 发表评论(10) | Trackback(0)

PHP 7.X、PHP的报错日志测试结果记录
2019年06月22日 12:49

PHP 7.X的报错规则比PHP 5.X严格很多。测试结果是为了试验error_reporting(0);能否彻底关闭报错日志,以防止用户的错误日志的增加,测试结果是肯定的。测试平台为Ubuntu 16+Apache+PHP 7.2。共写入这4个php测试文件:

1.php……

固定链接 | 发表评论(2) | Trackback(0)

Feedval程序已经开始修改为PHP 7的写法(Feedval开发实况24)
2019年06月21日 16:17

Feedval目前在PHP 5.X可完美运行。PHP 7.0应该也可以运行,暂不支持PHP 7.1和之后的版本。已经开始全力修改,使其能够兼容PHP 7.1~最新的PHP 7.3。

经过几天的持续调试,我的电脑终于完成PHP 7.X的环境安装+一键还原。昨晚排查出了PHP 5.X和PHP 7.X写法的不同,主要是由于从PHP 7.1开始,其报错规则非常严格。只要一个变量不存在,当调用它时,就会报错。数组的名称,也不能与已有的变量同名(如果有,PHP 7.X必须先清除数组)。这种严格的报错规则,多见于其它的语言。PHP之所以让开发者感到轻松,就是因为无需每次都声明变量。……

固定链接 | 发表评论(4) | Trackback(0)

PHP 5.X和PHP 7.1写法的2个不同(修改需要庞大的工作量)
2019年06月20日 22:42

这几天经过很多波折,终于把Win 10+PHP 7.1的工作平台搭建完成。作为开发平台,Win 10操作系统,在很多方面都远不如XP好用。目前,XP、Win 7都无法安装PHP 7.X。我原来在PHP 5.X编写的程序,在PHP 7.1都无法运行,在PHP 7.0下运行正常。今天经过排查,终于找到了原因。由于写法不同,导致PHP 5.X下编写的程序,无法在PHP 7.1下运行。

目前已经发现的不同:……

固定链接 | 发表评论(4) | Trackback(0)

漫长的PHP 7.X安装之坑的困境详解
2019年06月14日 10:02

因为从PHP 7.1开始,PHP的解释器做了很大的改动,导致原来的很多PHP程序无法在PHP 7.1及之后的版本运行。如果作为为用户提供程序、非自用的开发者,为了争取更多用户,有必要跟进新的平台。经过2天的安装,基本上已经完成了PHP 7.1~7.3的安装。PHP 7.X的安装,没有想象中的顺利。为了完成PHP的开发,我的电脑不得不使用4块硬盘,安装了4个系统。

这4个系统分别是:XP、Win 7、Win 10、XP+VMware+Linux。……

固定链接 | 发表评论(12) | Trackback(0)

博客的优美之处在于记录真实的事情和想法,记录PHP 7.1、HTML 5遇到的困扰
2019年06月12日 10:42

个人的力量无法去阻挡时代的变化,正如房价的变化。本博客这些年来,随着博客的不断撰写,会产生很多新的思考、想法和发现。其中一个重要的发现是,很多事情、技术并不会因为时间的推移,就必然会进步。很多好的技术、观念,都随时可能被遗忘、失传,这样的事情细想一下,数量十分惊人,有可能超过半数

很多人会在潜意识里认为新的技术一定是最好的。只有在这个领域里工作的人,或者多加思考的人,才知道事实并非如此。……

固定链接 | 发表评论(4) | Trackback(0)

常用技术分享:JavaScript的onclick的一个bug和解决
2019年06月08日 09:21

<input>如果有默认的字符提示,当点击时需要清除默认字符,例如我编写的这个页面 http://cn.blogval.com/author/ 。如果只用onclick,会发现如果此时按鼠标右键,或者在手机上直接长按,默认字符都不会清除。

这是onclick的一个bug。解决办法,在<input>里,除了写onclick,再同时写一个onfocus的语句。……

固定链接 | 发表评论(0) | Trackback(0)

必成技术分享:PHP获得服务器本机IP的思路
2019年06月08日 07:40

最近我在Eonval项目开发中需要此功能,但PHP自身无法获取服务器本机IP。想要获取服务器本机IP,有很多种方法,比如需要时我会想这2个办法,都需要调用Linux主机的shell命令来实现。这2个办法都必须使用唯一的这个函数shell_exec(''),它是返回Linux主机的shell结果的所有行,且将结果传给一个变量,再用PHP分析运行结果,从运行结果中提取出服务器的IP地址。

方法1. 免root(所有的CentOS/Ubuntu/Debian主机默认是这个状态),即Apache或Nginx不需要有root权限。程序如:……

固定链接 | 发表评论(0) | Trackback(0)

博客防止spam的新方案分享,十分有效:单篇设置验证码
2019年05月14日 07:36

本文的spam,专指有一种来自国外的评论,每条评论内容里有10多个链接,语言是英文或者其它语言(类似德语、法语),发在中文博客里。我的博客当初开通一两年之后,评论里就开始有这类spam,几乎一两天内就有。

当时想了很多办法,最后非常无奈只好全站开启验证码,效果立竿见影。这一两年,为了用户体验,去掉了验证码。我发现spam总是发在那几篇博客里,所以把那几篇博客都关闭了评论。spam突然沉寂了很久,这几天又多了起来。……

固定链接 | 发表评论(5) | Trackback(0)

1 2 3 4 5 6 7

下一页 | 末页 (共7页)

王志勇:1980-09-26 (41周岁)
程序设计,前端设计。

版权声明:本博客所有文章,均符合原创的定义,禁止转载,违者将必究;正确的方法是贴原文的标题和网址即可。

与此相关的链接
自由勇专栏

Blog存档 Archives

2021年06月(9)
2021年05月(17)
2021年04月(25)
2021年03月(6)
2021年02月(17)
2021年01月(30)
2020年12月(19)
2020年11月(18)
2020年10月(15)
2020年09月(14)
2020年08月(14)
2020年07月(14)
2020年06月(16)
2020年05月(13)
2020年04月(18)
2020年03月(14)
2020年02月(15)
2020年01月(16)
2019年12月(11)
2019年11月(26)
2019年10月(25)
2019年09月(30)
2019年08月(10)
2019年07月(29)
2019年06月(30)
2019年05月(26)
2019年04月(30)
2019年03月(30)
2019年02月(30)
2019年01月(30)
2018年12月(30)
2018年11月(30)
2018年10月(30)
2018年09月(17)
2016年-2017年(9)
2014年06月-09月(10)
2013年 +

2012年 +
2011年 +
2010年 +
2009年 +
2008年 +
2007年 +
2006年 +
2005年09月(4)

Copyright © 2006-2021 auiou.com All rights reserved.
此Blog程序由王志勇编写