<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>PHP on PHPHA</title><link>https://blog.phpha.com/tag/php/</link><description>Recent content in PHP on PHPHA</description><generator>Hugo</generator><language>zh</language><lastBuildDate>Fri, 10 Jul 2020 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.phpha.com/tag/php/index.xml" rel="self" type="application/rss+xml"/><item><title>阿里云 ECS SMTP 发送邮件</title><link>https://blog.phpha.com/archives/150/</link><pubDate>Fri, 10 Jul 2020 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/150/</guid><description>&lt;p&gt;因业务需要，今天做了一个简单的邮件发送功能，通过 &lt;code&gt;PHPMailer&lt;/code&gt; 来实现。本地测试正常，部署到阿里云 &lt;code&gt;ECS&lt;/code&gt; 后，报错：&lt;code&gt;SMTP connect() failed&lt;/code&gt; ，本文简单记录下解决方案。&lt;/p&gt;</description></item><item><title>PHP SM2 国密算法与 CURL SSL 双向认证</title><link>https://blog.phpha.com/archives/149/</link><pubDate>Fri, 12 Jun 2020 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/149/</guid><description>&lt;p&gt;最近在对接民生银行的电子账户接口，按照民生的要求，调用接口需要涉及 &lt;code&gt;SM2&lt;/code&gt; 国密算法及 &lt;code&gt;SSL&lt;/code&gt; 双向认证。目前银行端提供的只有 &lt;code&gt;JAVA&lt;/code&gt; 版的 &lt;code&gt;SDK&lt;/code&gt;，把 &lt;code&gt;PHP&lt;/code&gt; 作为开发语言的我们表示很受伤。本文就针对涉及的两个点进行说明，简单汇总下 &lt;code&gt;PHP&lt;/code&gt; 语言中的解决方案。&lt;/p&gt;</description></item><item><title>阿里云消息队列AMQP版之延迟消息</title><link>https://blog.phpha.com/archives/148/</link><pubDate>Fri, 22 May 2020 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/148/</guid><description>&lt;p&gt;近几天在基于阿里云 &lt;code&gt;AMQP&lt;/code&gt; 版消息队列开发业务，之所以选择这个而不是阿里云主推的 &lt;code&gt;RocketMQ&lt;/code&gt; ，是因为我想用的是 &lt;code&gt;RabbitMQ&lt;/code&gt; 。选择阿里云而非自己部署，无非是为了节省运维成本。相对来说官方的 &lt;code&gt;PHP&lt;/code&gt; 版本 &lt;code&gt;Demo&lt;/code&gt; 非常简陋，而且虽然官方宣传完全兼容 &lt;code&gt;RabbitMQ&lt;/code&gt; ，但还是有一些坑的。&lt;/p&gt;</description></item><item><title>PHP 之 for 循环</title><link>https://blog.phpha.com/archives/137/</link><pubDate>Fri, 09 Aug 2019 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/137/</guid><description>&lt;p&gt;&lt;code&gt;for&lt;/code&gt; 循环在很多的编程语言中都被支持，是一种常见的循环用法，也算是我们学习每门编程语言中最基础的知识点。但正是因为基础，所以才容易被忽略，久而久之，甚至会误解。本文 &lt;code&gt;PHPHa&lt;/code&gt; 就对 &lt;code&gt;PHP&lt;/code&gt; 中的 &lt;code&gt;for&lt;/code&gt; 循环进行复习，不求温故而知新，但求能矫枉过正。&lt;/p&gt;</description></item><item><title>PHP 常用的 11 种设计模式</title><link>https://blog.phpha.com/archives/133/</link><pubDate>Sun, 04 Aug 2019 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/133/</guid><description>&lt;p&gt;本文简单介绍下，在 &lt;code&gt;PHP&lt;/code&gt; 开发中涉及的常用的设计模式。包含：工厂模式、单例模式、注册器模式、适配器模式、策略模式、数据对象映射模式、观察者模式、原型模式、装饰器模式、迭代器模式、代理模式等。&lt;/p&gt;</description></item><item><title>PHP代码风格规范[PSR-2]</title><link>https://blog.phpha.com/archives/38/</link><pubDate>Sun, 13 Dec 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/38/</guid><description>&lt;p&gt;本篇规范是 &lt;a href="http://blog.phpha.com/archives/37/"&gt;PSR-1&lt;/a&gt; 基本代码规范的继承与扩展。&lt;/p&gt;
&lt;p&gt;关键词 “必须”(&amp;ldquo;MUST&amp;rdquo;)、“一定不可/一定不能”(&amp;ldquo;MUST NOT&amp;rdquo;)、“需要”(&amp;ldquo;REQUIRED&amp;rdquo;)、 “将会”(&amp;ldquo;SHALL&amp;rdquo;)、“不会”(&amp;ldquo;SHALL NOT&amp;rdquo;)、“应该”(&amp;ldquo;SHOULD&amp;rdquo;)、“不该”(&amp;ldquo;SHOULD NOT&amp;rdquo;)、 “推荐”(&amp;ldquo;RECOMMENDED&amp;rdquo;)、“可以”(&amp;ldquo;MAY&amp;rdquo;)和”可选“(&amp;ldquo;OPTIONAL&amp;rdquo;)的详细描述可参见 &lt;a href="http://www.ietf.org/rfc/rfc2119.txt"&gt;RFC 2119&lt;/a&gt; 。&lt;/p&gt;</description></item><item><title>PHP基本代码规范[PSR-1]</title><link>https://blog.phpha.com/archives/37/</link><pubDate>Sun, 13 Dec 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/37/</guid><description>&lt;p&gt;本篇规范制定了代码基本元素的相关标准， 以确保共享的PHP代码间具有较高程度的技术互通性。&lt;/p&gt;
&lt;p&gt;关键词 “必须”(&amp;ldquo;MUST&amp;rdquo;)、“一定不可/一定不能”(&amp;ldquo;MUST NOT&amp;rdquo;)、“需要”(&amp;ldquo;REQUIRED&amp;rdquo;)、 “将会”(&amp;ldquo;SHALL&amp;rdquo;)、“不会”(&amp;ldquo;SHALL NOT&amp;rdquo;)、“应该”(&amp;ldquo;SHOULD&amp;rdquo;)、“不该”(&amp;ldquo;SHOULD NOT&amp;rdquo;)、 “推荐”(&amp;ldquo;RECOMMENDED&amp;rdquo;)、“可以”(&amp;ldquo;MAY&amp;rdquo;)和”可选“(&amp;ldquo;OPTIONAL&amp;rdquo;)的详细描述可参见 &lt;a href="http://www.ietf.org/rfc/rfc2119.txt"&gt;RFC 2119&lt;/a&gt; 。&lt;/p&gt;</description></item><item><title>基于Redis实现PHP消息队列</title><link>https://blog.phpha.com/archives/36/</link><pubDate>Fri, 27 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/36/</guid><description>&lt;p&gt;所谓消息队列，即在消息的传输过程中保存消息的容器。最常见的使用场景是，通过引入消息队列来对耗时的任务就行异步处理，以及应对高并发问题，即所谓的削峰作用。在以PHP为主要开发语言的项目中，我们可以选择的软件有很多，最常使用的有三种：基于 &lt;code&gt;Redis&lt;/code&gt; 的 &lt;code&gt;List数据类型&lt;/code&gt; 来用PHP实现入列出列，基于 &lt;code&gt;Memcached&lt;/code&gt; 的扩展应用 &lt;code&gt;MemcacheQ&lt;/code&gt;，还有更强大和流行的&lt;code&gt;RabbitMQ&lt;/code&gt;。&lt;/p&gt;</description></item><item><title>CentOS环境PHP安装Memcache扩展</title><link>https://blog.phpha.com/archives/19/</link><pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/19/</guid><description>&lt;p&gt;首先需要说明的是，memcache与memcached的区别，memcache是客户端的扩展，memcached是服务端。&lt;/p&gt;</description></item><item><title>Memcached常规应用与分布式部署方案</title><link>https://blog.phpha.com/archives/7/</link><pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/7/</guid><description>&lt;p&gt;下面天涯 &lt;code&gt;[PHPHA.COM]&lt;/code&gt; 介绍下 &lt;code&gt;Memcached&lt;/code&gt; 的最常规的应用及分布式部署方案。相关内容参考了凹凸曼写的 &lt;code&gt;Memcached&lt;/code&gt; 使用与实践章节。至于 &lt;code&gt;Memcached&lt;/code&gt; 的安装及基本使用，这里不做介绍，有需要可以借助 &lt;code&gt;Google&lt;/code&gt;。&lt;/p&gt;</description></item><item><title>PHP使用Memcache存储SESSION</title><link>https://blog.phpha.com/archives/18/</link><pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/18/</guid><description>&lt;p&gt;下面简单介绍下PHP项目分布式部署中，SESSION的同步方案中的一种，使用Memcache来存储SESSION。至于Memcached的安装请看&lt;a href="http://blog.phpha.com/archives/17/"&gt;《CentOS-6.4安装Memcached》&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>PHP防止快速刷新代码</title><link>https://blog.phpha.com/archives/9/</link><pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/9/</guid><description>&lt;p&gt;提供个PHP防快速刷新代码，直接上代码。&lt;/p&gt;</description></item><item><title>PHP面试中常见的字符串与文件操作题目</title><link>https://blog.phpha.com/archives/23/</link><pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/23/</guid><description>&lt;p&gt;由于最近考虑换工作，所以抽时间复习下面试中可能遇到的基本知识。下面是四道比较常见的题目，主要考察的是对字符串函数以及文件操作相关函数的掌握程度。&lt;/p&gt;</description></item><item><title>Ubuntu-14.04编译安装PHP-5.5.16</title><link>https://blog.phpha.com/archives/26/</link><pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/26/</guid><description>&lt;p&gt;继前两篇文章《&lt;a href="http://blog.phpha.com/archives/24/"&gt;Ubuntu-14.04编译安装Apache-2.4.10&lt;/a&gt;》和《&lt;a href="http://blog.phpha.com/archives/25/"&gt;Ubuntu-14.04编译安装MySQL-5.6.16&lt;/a&gt;》之后，本次介绍下PHP-5.5.16的编译安装。&lt;/p&gt;</description></item><item><title>WEB集群中常见的SESSION同步机制</title><link>https://blog.phpha.com/archives/4/</link><pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/4/</guid><description>&lt;p&gt;WEB集群是我们在项目中常见的情况，但是通过负载均衡后，会造成session的不同步问题，最直观的现象就是用户登录以后，会出现已登录与未登录的状态的不断切换。这是因为同一个IP访问同一个页面会被随机分配到不同的服务器上。&lt;/p&gt;</description></item><item><title>常用算法PHP版</title><link>https://blog.phpha.com/archives/3/</link><pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/3/</guid><description>&lt;p&gt;下面分享一些最常见的算法，用PHP如何实现。&lt;/p&gt;</description></item><item><title>用PHP实现的HashTable及说明</title><link>https://blog.phpha.com/archives/6/</link><pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/6/</guid><description>&lt;p&gt;下面是用PHP实现的HashTable代码，其中需要说明的有两点：&lt;/p&gt;</description></item></channel></rss>