Jun222019
Swoole实践:3-使用Swoole批量发送邮件
在上一节中我们介绍了使用Swoole发送单个邮件,那么如果是大量的邮件需要发送,比如给2万个用户发送优惠活动邮件,这是一个比较耗时的过程,而PHP本身不适合处理这种耗时多任务场景。本节为给大家介绍使用Swoole+Redis来实现发送批量邮件的例子。
建立任务
接上一节代码,编辑src/App/Mail.php文件代码,在public function onTask()方法中增加批量队列发送邮件的代码:
public functi...阅读全文
抢沙发
Jun222019
laravel实现一对多关联模型数据查询
本文我们就是要通过laravel的一对多的关联模型来快速实现数据的调用。
假如我们现在有两张表:user 和 posts,每个 user 可以拥有多个 posts,而每一篇 posts 只能属于一个 user,两者的关系是明显的一对多关系。
user 表和 posts 表表结构如下:
CREATE TABLE `user` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` char(30) NOT NULL DEFAULT 'www.phpernote.com' COMME...阅读全文
Jun222019
php函数精确计算文章内容相似度,不用similar_text()函数
php默认有个函数similar_text()用于计算字符串之间的相似度,该函数也可以计算两个字符串的相似度(以百分比计)。不过这个函数感觉对中文计算很不准确比如:
echo similar_text("吉林禽业公司火灾已致112人遇难","吉林宝源丰禽业公司火灾已致112人遇难");
这两个新闻标题其实都是一样的,如果使用similar_text()相似对结果为:42,即只相似42%,所以这个感觉很不靠谱,今天刚好收集到一...阅读全文
Jun222019
Laravel 一对多关联模型 Eloquent下with() 函数只返回指定列
下面我们来看一篇关于Laravel Eloquent下with() 函数只返回指定列的例子,希望这个例子能够为各位带来帮助,具体的如下所示。
通过 with 函数获取数据的例子参照:laravel实现一对多关联模型数据查询
接着上面这篇文章,我们知道这里获取的是 user 的所有字段信息,但是我们可能并不需要 user 表中所有的字段,例如我们只需要 id 和 name 两个字段,即:
select * from `posts`
select id...阅读全文
Jun152019
laravel orWhere的用法示例
laravel框架下 where 条件查询很简单,这里就不写了,这里主要记录一下平常不怎么用的 orWhere 多条件 or 查询语句的拼接,示例如下:
(1)SQL 语句:
select `id` from `user` where (`email` = 'admin@phpernote.com' and `password` = '123456') or (`mobile` = '13681127231' and `password` = '123456');
laravel model 语句:
User::select(['id'])
->where(function ($qu...阅读全文
Jun042019
nginx+php设置自定义404页面
运行环境为nginx+php时,当web服务器找不到文件的时候会报出404的错误。如果不想让用户看到系统的错误提示,设置自定义的页面,可以增加安全性和友好度体验。
配置nginx的自定义404页面,需要在nginx.conf配置两个地方。
一个是nginx报出的404错误,当一些前端的静态文件如html文件、css文件等,直接是nginx去查找文件,如果没有这个文件nginx会报出404 Not Found nginx的错误。
一个是php...阅读全文
Jun042019
解决安装php扩展报错configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.
我在安装rabbitmq php扩展的时候报错,错误重点信息如下:
configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.
网上搜了一下,解决方法如下,记录一下:
wget https://sourceforge.net/projects/re2c/files/0.16/re2c-0.16.tar.gz
tar zxf re2c-0.16.tar.gz
cd re2c-0.16
./configure
make && make install
然后问题就解决了。
阅读全文
Jun042019
使用html+swoole通过websocket实现一个简单的聊天室代码
使用html+swoole通过websocket实现一个简单的聊天室代码。
客户端代码:
<html>
<head>客户端</head>
<body>
<script type="text/javascript">
var sock = null;
var wsuri = "ws://127.0.0.1:1234";
window.onload = function () {
console.log("onload");
sock = new WebSocket(wsuri);
sock.onopen = function () ...阅读全文
Jun032019
php 判断访问者是否为搜索引擎蜘蛛
总结一个使用 php 判断访问者是否为搜索引擎蜘蛛的函数。
/**
* 判断是否为搜索引擎蜘蛛
* @return bool
*/
function isCrawler() {
$agent = isset($_SERVER['HTTP_USER_AGENT']) ? strtolower($_SERVER['HTTP_USER_AGENT']) : '';
if ($agent) {
$spiderSite = [
'TencentTraveler',
'Baiduspider+',
'BaiduGame',
...阅读全文
Jun032019
php类中private属性继承问题分析
首先 这个题目就有点问题 因为private属性是不能被继承的
请仔细看这句话 如果父类有私有的属性。那么父类的方法只为父类的私有属性服务。 下面通过一系列列子来加深理解. 这个例子看起来很奇怪,在子类中重新定义了一个属性$sal,系统却返回了父类的属性。
复制代码代码如下:
<? class employee{ private $sal=3000; //protected $sal=3000; public function getSal(){ return $this-...阅读全文