标签‘php’

php函数之值传递&引用传递

由于工作忙碌,博客已经断更整一年,最近终于抽出点时间,来分享一些近一年经历中印象深刻的经历。

大概三年前,曾经整理过这样两篇文章《JavaScript函数究竟是值传递还是引用传递?》、《Java方法究竟是值传递还是引用传递?》,不为别的,只因为在工作中有人遇到类似问题,查阅资料后加以整理。巧的是,前阵子做php的同事又造出了相似的bug,不同的是,php并不像前两者一切皆值传递。

在php的世界里,存在传值和传引用两种方式

查看更多...

使用cPanel主机部署基于composer、laravel的Web应用

因为希望在闲置cPanel主机上部署composer、laravel应用,简单记录一下(并非cPanel使用教程)。

1、登录cPanel,在Domains一栏找到“附加域”,按照常规添加我们要绑定的域名,生成站点目录。
2、SSH登录cPanel主机(ip为主机ip,共享、独享都可以,账户、密码复用cPanel的账户、密码),测试是否有全局安装composer。
3、FTP或者SFTP连接主机,上传必要文件,composer install/update,如果速度过慢,可以参照本地开发时做法,执行composer config -g repo.packagist composer https://packagist.phpcomposer.com,随后继续直至安装完毕。 查看更多...

简易NodeJS、PHP跨域代理[Restful请求]

最近测试一些东西,需要跨域访问Restful接口,因为是测试,不可能改变接口形式,所以jsonp方案直接Pass。

本地测试时简单写了几行NodeJS代码,对特定路径下的请求进行转发后回传,因为使用WebStorm开发,NodeJS不可以和WebStorm内置服务器使用相同端口,虽然可以通过配置本地服务器,完全将NodeJS作为服务器,但那样需要解决静态资源的输出,写东西过多,偏离初衷,这里不再赘述。

不过如果你是做前后端完全分离的项目,大可以找个开源的Web框架来用,比如express等,这里不多介绍。

总之但思路就这样了,可能不太完善,代码如下: 查看更多...

两行代码绕过基于referrer的防盗链

去年年底,微信公众号对图文消息内的图片做了防盗链设置,但验证发现业务域名下引用微信公众号图文还不受影响,以为做了白名单处理,不料近期发现所有自己网站的页面都不能正常显示图片,而是显示微信的防盗链提示。

由于业务需要,公司产品通过微信公众平台提供的接口创建、维护图文,大概去年8月15号,图文创建接口对非官方图片链接做了过滤,无奈将所有素材上传至微信,与此同时,我们自己也有页面需要显示对应图文信息,面对微信的防盗链屏蔽,想过维护两个图片路径,本地图文显示时替换为本地图片URL,后面感觉这样太影响效率,为了紧急修复图片不能显示的问题,遂通过简单的代码绕过了微信防盗链。

下面是核心代码(PHP) 查看更多...

PHP挂QQ小程序分享,要的自取

小程序啥作用,不说了,这玩意代码很烂,也没心情整理了,毕竟不是我自己写的,记得是三四年前对PHP还不是很熟的时候在网上找的,然后改巴改巴自己就用了。

也不知道最近两年怎么了,平均每个月都有那么一二十个人找我要挂QQ程序,因为要工作,实在没空,所以在csdn上面上传了打包的程序,后面有人找我要程序一般都是直接给csdn链接,但是目前上班上不了PC版QQ,发信息还好说,发链接我哪记得住呢?

索性,单独开一页面,给玩QQ挂机的小童鞋们下载吧。

补充一下,这次打包的文件是今晚稍作修改的,之前csdn的文件忘记是在5.3还是5.4版本以上的有异常,因为用到了已废弃的函数,已经简单替换了新函数。 查看更多...

多说插件在PHP5.3环境下出错实为函数规范所致

春节终于过去了,回来直接上班一周,总算可以缓口气过个周末了。顺便写下农历新年第一篇。

回归正题,虽然是元宵节+情人节,晚上依照惯例登上服务器看看博客,才想起年前博客因为迁移VPS出问题,暂时放回了早些时候用的虚拟主机,上去一看,发现5G的网站空间居然占满了,回想之前遇到过哦 1G多错误日志的情况,仔细一看,还真是php的error.log。足足4G+的大小,果断删了,过了一会在刷新,出现新的错误文件,打开发现有plugins/duoshuo/WordPress.php on line 439错误十几行,以为是多说的问题,搜了下才知道,原来是新版php不建议使用split的缘故。可能虚拟机的服务商把php升级了,所以出现这样的问题。而之前是自己配的VPS,用的还是5.2,。

下面是找到的资料,顺手也罗列出来,供大家参考。

PHP5.3 split() 不建议使用的原因:

PHP 5.3.0 之后的regex, 希望使用PCRE 的规格, POSIX Regex 查看更多...

一个让人疑惑的PHP编码问题的解决

首先声明,小子不是专搞php的,所以对于下文所提及的问题可能是常见的,但出于是新手的原因,这里不太明白。

问题起源:数月前在博友哪里看到一套php写的在线挂QQ小程序,就是通过定时刷新登陆3GQQ实现挂机的那种。修改后讲程序扔主机上并把自己收藏多年的几个QQ挂了起来,就这样一直相安无事,很正常运行也从没出现过乱码问题。

问题表现:出现问题是很偶然的一次打开页面,因为很久没打开了,打开还以为是加载缓存问题,结果无聊怎么删除缓存重新加载、刷新,都是无果,出现令人无语的乱码。随便看了下找不出问题,而且我很明确的知道我没有动过原文件。 查看更多...

总结50余条提高PHP效率的要点

用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。

1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。

2、$row[’id’] 的速度是$row[id]的7倍。

3、echo 比 print 快,并且使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接,比如echo $str1,$str2。
查看更多...

常用php正则表达式汇总备忘

最近为了防止纯英文垃圾评论,写函数替换,这里用到了正则表达式,于是网上收集了一些,供大家参考了。
元字符及其在正则表达式上下文中的行为:
\ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符。
^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的Multiline 属性,^ 也匹配 ’\n’ 或 ’\r’ 之后的位置。
$ 匹配输入字符串的结束位置。如果设置了 RegExp 对象的Multiline 属性,$ 也匹配 ’\n’ 或 ’\r’ 之前的位置。
* 匹配前面的子表达式零次或多次。
+ 匹配前面的子表达式一次或多次。+ 等价于 {1,}。
? 匹配前面的子表达式零次或一次。? 等价于 {0,1}。
{n} n 是一个非负整数,匹配确定的n 次。
{n,} n 是一个非负整数,至少匹配n 次。 查看更多...

好用的PHP远程下载文件源码

最近两天主机有些不稳定,于是有了把现有文件传到备用主机上同步使用的想法,但是由于备用主机数据有将近10个月没有更新了,需要下载上传文件很多,加上WordPress程序、数据库都没有更新,最近又更改了大量程序设置,无奈只有备份数据库并打包站内全部文件,但是网络不给力,下载下来再上传就太麻烦了。

小子是越来越懒了,之前曾经通过cPanel主机的wget远程同步数据,但是这样在我的备用主机上可不适用。于是,就找了下php的远程下载程序,用来干什么大家自己决定吧。

工具很简单,界面如图所示,输入资源地址就行了。

程序如下: 查看更多...