PHP使用第三方SMTP服务器(QQ邮箱)代发邮件

在PHP应用开发中,往往需要验证用户邮箱、发送消息通知,而使用PHP内置的mail()函数,则需要邮件系统的支持。如果熟悉IMAP/SMTP协议,结合Socket功能就可以编写邮件发送程序了,不过开发这样一个程序并不容易。好在PHPMailer封装的足够强大,使用它可以更加便捷的发送邮件,免去了我们很多额外的麻烦。PHPMailerPHPMailer是一个封装好的PHP邮件发送类,支持发送HTML内容的电子邮件,以及可以添加附件发送,并不像PHP本身mail()函数需要服务器环境支持,您只需要设置邮件服务器以相关...

阅读全文

php循环语句 for()与foreach()用法区别介绍

for循环是PHP中最复杂的循环结构。它的行为和C语言的相似。for循环的语法是: for (expr1; expr2; expr3) statement第一个表达式(expr1)在循环开始前无条件求值一次。 expr2在每次循环开始前求值。如果值为TRUE,则继续循环,执行嵌套的循环语句。如果值为FALSE,则终止循环。 expr3在每次循环之后被求值(执行)。 每个表达式都可以为空。expr2为空意味着将无限循环下去(和C一样,PHP认为其值...

阅读全文

ThinkPHP数据库短时间内查询过多查询不完整问题

经调试发现,当在短连接的情况下,频繁过多的socket连接时,会发生异常。这里我们将MySQL的连接方式改成长连接即可。在TP5中,可以在/application/database.php中,修改params项,由params=>[],改成如下:'params'         => [    \PDO::ATTR_PERSISTENT   =>...

阅读全文

ThinkPHP报错SQLSTATE[HY000] [2002] No such file or directory解决方案

出现这个报错,一般都是php.ini中关于>mysql.sock的指向与my.cnf中mysq.sock的指向不一致导致的。方案一打开/etc/my.cnf配置文件(这里的我的机器,具体根据环境实际情况查找),找到如下配置项目:注意到其中的socket没,这里就是mysql.sock的正确指向位置。接下来,再打开php.ini文件(一般是在php安装目录下的etc目录中),找到与mysqldefault_socket相关的配置项目,比如mysqli.default_socket 或 pdo_mysql.default_sock...

阅读全文

php调试时print_r/var_dump的区别

print和echo一样,但速度比echo慢。print_r打印关于变量的易于理解的信息,如果给出的是string、integer或float,将打印变量值本身。如果给出的是array,将会按照一定格式显示键和元素。object与数组类似。记住,print_r()将把数组的指针移到最后边。使用reset()可让指针回到开始处。var_export:跟print_r和var_dump类似,但是很少用。var_dump:此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。var_dump和p...

阅读全文

phpcms增加二维码生成功能的两种方法

第一种方法,使用PHP原声来生成PHP环境必须开启支持GD21、api接口文件目录增加如下文件:官网下载地址:http://phpqrcode.sourceforge.net/官方示例地址:http://phpqrcode.sourceforge.net/examples/index.phpphpqrcode.php2、在phpcms框架主目录functions中我们增加一个自定义函数:\phpcms\libs\functions\extention.func.php增加的二维码函数如下:/***  extention.func...

阅读全文

thinkphp模板中使用原生php代码

在模板中使用原生php代码可能是我们需要的,毕竟thinkphp的方法再全再灵活,有些地方使用原生php去写更方便,所以thinkphp有提供我们在模板中使用原生php的方法首先找到TMPL_DENY_PHP这个参数改为falsePhp代码可以和标签在模板文件中混合使用,可以在模板文件里面书写任意的PHP语句代码,包括下面两种方式: 第一种是使用php标签: 例如: <php>echo 'Hello,world!';</php>我们建议需要使用PHP代码的时候尽量采用php...

阅读全文

php数组转换为字符串的两种方法

第一种方法:使用PHP本身的函数implode来直接将数组转换为字符串。第二种方法:使用循环遍历数组元素拼接成字符串。下面我们通过具体的代码示例来给大家一一解说。代码示例方法1:<?php$arr=['PHP','Python','Java','C'];$str=implode(',',$arr);var_dump($arr);var_dump($str);在上述代码中,首先我们创建了一个$arr数组,里面分别赋了四个不同的值;然后再使用implode函...

阅读全文

PHP实现递归排序

递归算法对于任何一个编程人员来说,应该都不陌生。因为递归这个概念,无论是在PHP语言还是Java等其他编程语言中,都是大多数算法的灵魂。对于PHP新手来说,递归算法的实现原理可能不容易理解。但是只要你了解掌握了这个算法原理,就可以灵活运用递归算法实现编程中的多种功能比如实现无限分类等。递归也是入门者最需要掌握的一个基础算法技巧。那究竟什么是递归呢?递归其实就是函数本身直接或者间接地调用自身的一种编程方法,也可以理解为有反复执行过程的一种方法,这个就与循环非常相似,但是递归调用的函数中必须要有终止条件,也就是一定要有跳出反复执行过程的条件,否则就会成为死循...

阅读全文