PHP

PHP套接字编程

套接字编程,一般使用c或c++。特别的在web应用程序开发中,常用perl实现套接字。除此以外,用PHP进行套接字编程也是一个选择。Php可以胜任吗?当然可以。Php是一门高质量的web应用程序开发语言,他的许多特性可以处理众多的任务,网络编程也不例外。

1. 理解套接字

Mail、 ftp、telnet、name和finger这些服务都是在一个专用的公开的端口上提供的,通过连接到这些端口,客户程序就能够访问这些服务。这与现实 生活是相似的——当需要干洗衣服的时候,找干洗店;当需要取钱的时候,去银行,等等。除了专用于特定服务器的端口外,计算机还有其它的端口让程序员创建他 们自己的服务器。
端口一般是编号的,通过指定服务器的端口号,客户程序可以连接到该端口上。每种服务器或端口要有特定的协议,为了让客户的请求能够被理解和响应,客户必须以这种服务器特有的方式形成客户请求。
Socket是网络上运行的两个程序间双向通信连接的一端。Socket这个词的一般意义是自然的或人工的插口,如家用电器的电源插口等。
客户程序可以向Socket写请求,服务器将处理此请求,然后通过Socket把结果返回给客户。
Socket是一种底层连接。客户机和服务器通过写入到Socket的字节流进行通信。它们必须有共同的协议,也就是说,通过Socket相互传送信息时所用的语言必须是协定好的。

2. Socket建立连接的过程

建立过程如下:(connection-oriented)…

    

php phalcon框架数据库连接改为长连接后,插入性能极大提升

php phalcon框架数据库连接改为长连接后,压力测试插入性能极提升3倍多

<?php

// Create a connection with PDO options
$connection = new \Phalcon\Db\Adapter\Pdo\Mysql(
    [
        "host"     => "localhost",
        "username" => "root",
        "password" => "sigma",
        "dbname"   => "test_db",
        "options"  => [ //这里加上此附加参数
            PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'",
            
                    

亿级用户PC主站的PHP7升级实践

伴随业务的增长,系统压力也在不断增加,再加上机房机架趋于饱和,无法更加有效应对各种突发事件。在这样的情况下,PC主站升级为PHP 7,有哪些技术细节可以分享?

背景

新浪微博在2016年Q2季度公布月活跃用户(MAU)较上年同期增长33%,至2.82亿;日活跃用户(DAU)较上年同期增长36%,至1.26亿,总注册用户达8亿多。PC主站作为重要的流量入口,承载部分用户访问和流量落地,其中我们提供的部分服务(如:头条文章)承担全网所有流量。…

    

PHP高级编程之消息队列

PHP高级编程之消息队列

 

摘要

2015-10-19 第一版

2016-11-31 第二版

目录

1. 什么是消息队列

消息队列(英语:Message queue)是一种进程间通信或同一进程的不同线程间的通信方式

PHP的队列(Queue)

异步并发的服务器里经常使用队列实现生产者消费者模型,解决并发排队问题。PHP的SPL标准库中提供了SplQueue扩展内置的队列数据结构。另外PHP的数组也提供了array_poparray_shift可以使用数组模拟队列数据结构。

SplQueue

$queue = new SplQueue;
//入队
$queue->push($data);
//出队
$data = $queue->shift();
//查询队列中的排队数量
$n = count(