博文

目前显示的是 九月, 2018的博文

php 清除文件中的BOM特殊不可见字符方法

在一些特殊的编码下生成的文件会含有特殊字符而且文件打开不可见,但在对程序造成很大困扰,解决方法: function removeBOM($str = '') {         if (substr($str, 0, 3) == pack("CCC", 0xef, 0xbb, 0xbf))             $str = substr($str, 3);          return $str; } BOM BOM(byte-order mark)文件编码头,即 字节顺序标记. 它是插入到以UTF-8、UTF16或UTF-32编码文件开头的特殊标记, 用来标记多字节编码文件的编码类型和字节顺序(big-endian或little- endian)。 一般用来识别文件的编码类型。 BOM编码头 常见形式如下: EF BB BF = UTF-8                 (可选标记,因为Unicode标准未有建议) FE FF    = UTF-16, big-endian    (大尾字节序标记) FF FE    = UTF-16, little-endian (小尾字节序标记) (也是windows中的Unicode编码默认标记) 00 00 FE FF = UTF-32, big-endian   (大尾字节序标记) FF FE 00 00 = UTF-32, little-endian (小尾字节序标记) 对于UTF-8来说,BOM标记的有无并不是必须的,是可选的,因为UTF8字节没有顺序,不需要标记. 也就是说一个UTF-8文件可能有BOM,也可能没有BOM. 微软在自己的UTF-8格式的文本文件之前加上了EF BB BF三个字节, windows上面的notepad等程序就是根据这三个字节来确定一个文本文件是ASCII的还是UTF-8的, 然而这个只是微软暗自作的标记, 其它平台上不...

php 获取根域名的方法

如果你只简单获取当前访问你页面的域名,我们只需要使用php中的函数HTTP_HOST就可以搞定了,如果是提取url根域名是需要正则的,下面就来看看几个具体实例。 如果是获取当前域名是非常的简单的: <?php //获取当前的域名: echo $_SERVER [ 'SERVER_NAME' ]; //获取来源网址,即点击来到本页的上页网址 echo $_SERVER [ "HTTP_REFERER" ]; $_SERVER [ 'REQUEST_URI' ]; //获取当前域名的后缀 $_SERVER [ 'HTTP_HOST' ]; //获取当前域名 dirname( __FILE__ ); //获取当前文件的物理路径 dirname( __FILE__ ). "/../" ; //获取当前文件的上一级物理路径 ?> 例子1 function getUrlRoot ( $url ) { #添加头部和尾巴 $url = $url . "/" ; #判断域名 preg_match( "/((\w*):\/\/)?\w*\.?([\w|-]*\.(com.cn|net.cn|gov.cn|org.cn|com|net|cn|org|asia|tel|mobi|me|tv|biz|cc|name|info)) \//" , $url , $ohurl ); #判断IP if ( $ohurl [ 3 ] == '' ){ preg_match( "/((\d+\.){3}\d+)\//" , $url , $ohip ); return $ohip [ 1 ]; } return $ohurl [ 3 ]; } 例子2 /** * 取得根域名 * @param type $domain 域名 * @return string 返回根域名 */ funct...

Linux云服务器挂载硬盘方法

图片
1.  查看数据盘 登录Linux云服务器后,可以使用  fdisk -l   命令查看数据盘相关信息。 2. 数据盘分区 执行   fdisk /dev/vdb   命令,对数据盘进行分区。 按照界面的提示,依次输入“ n ”(新建分区)、“ p ”(新建扩展分区)、“ 1 ”(使用第1个主分区),两次回车(使用默认配置),输入“ w ”(保存分区表),开始分区。 注:这里是以创建1个分区为例,开发者也可以根据自己的需求创建多个分区。执行以下命令时,请注意修改数据盘符,可以使用”fdisk -l”查看盘符等相关信息,以下均以vdb为例,若是其他盘符,仅需将vdb替换为该盘符即可。如fdisk /dev/vdb替换为fdisk /dev/xvdb。请确认路径为“/dev/vdb”,若错填为“/dev/vda”,将会造成云主机崩溃。 3.  查看新分区 使用  fdisk -l  命令,即可查看到,新的分区vdb1已经创建完成。 4.  格式化新分区 在进行分区格式化时,开发者可以自行决定文件系统的格式,如ext2、ext3等。本例以“ext3”为例,输入   mkfs.ext3 /dev/vdb1 5.  挂载新分区 使用   mkdir /mydata   命令创建mydata目录,再通过   mount /dev/vdb1 /mydata   命令手动挂载新分区,最后用   df -h   命令查看。出现如图信息则说明挂载成功,即可以查看到数据盘了。 6.  自动挂载数据盘 如果希望云服务器在重启或开机时能自动挂载数据盘,必须将分区信息添加到/etc/fstab中。如果没有添加,则云服务器重启或开机后,都不能自动挂载数据盘。使用   echo '/dev/vdb1 /mydata ext3 defaults 0 0' >> /etc/fstab ...

PHPMailer 利用QQ邮箱发送邮件

图片
PHPMailer PHPMailer 是一个封装好的 PHP 邮件发送类,支持发送 HTML 内容的电子邮件,以及可以添加附件发送,并不像 PHP 本身 mail() 函数需要服务器环境支持,您只需要设置邮件服务器以相关信息就能实现邮件发送功能。 PHPMailer 项目地址 : https://github.com/PHPMailer/PHPMailer PHP扩展支持 PHPMailer 需要 PHP 的 sockets 扩展支持,而登录 QQ 邮箱 SMTP 服务器则必须通过 SSL 加密,故 PHP 还得包含 openssl 的支持。 ↑ 使用 phpinfo() 函数查看 socket 和 openssl 扩展信息(wamp server 默认启用了该扩展)。 PHPMailer 核心文件 ↑ 在本文中只需要 class.phpmailer.php 和 PHPMailer/class.smtp.php。 QQ 邮箱设置 所有的主流邮箱都支持 SMTP 协议,但并非所有邮箱都默认开启,您可以在邮箱的设置里面手动开启。 第三方服务在提供了账号和密码之后就可以登录 SMTP 服务器,通过它来控制邮件的中转方式。 开启 SMTP 服务 ↑ 选择 IMAP/SMTP 服务,点击开启服务。 验证密保 ↑ 发送短信“配置邮件客户端”至1069-0700-69。 获取授权码 ↑ SMTP 服务器认证密码,需要妥善保管(PS:密码直接没有空格)。 PHP发送邮件 基本代码 下面的代码演示了 PHPMailer 的使用方法,注意 PHPMailer 实例的配置过程。 // 引入PHPMailer的核心文件 require_once ("PHPMailer/class.phpmailer.php" ); require_once ("PHPMailer/class.smtp.php" ); // 实例化PHPMailer核心类 $mail = new PHPMailer(); // 是否启用smtp的debug进行调试 开发环境建议开启 生产环境注释掉即可 默认关闭debug调试模式 $mail ->SM...

php判断今天是星期几的方法

php的date()函数十分强大,合理利用该函数的各种参数可以实现我们日常开发中的各种需求,今天说说如何使用php判断今天是星期几的方法。 关于php date()函数的解释,可以参照本站文章: PHP date()参数说明 这里主要用到了 w 这个参数,关于这个参数的解释是: w 表示星期中的第几天,数字表示 0(表示星期天)到 6(表示星期六) 有了这个一切就很简单了,作者这里就直接贴代码了,细节不解释: 查看代码 打印 1 <?php 2 //php获取今天是星期几 3 function   getWeek( $unixTime = '' ){ 4      $unixTime = is_numeric ( $unixTime )? $unixTime :time(); 5      $weekarray = array ( '日' , '一' , '二' , '三' , '四' , '五' , '六' ); 6      return   '星期' . $weekarray [ date ( 'w' , $unixTime )]; 7 } 8 echo   getWeek();