PHP开发集锦

<pre code_snippet_id="293554" snippet_file_name="blog_20140415_1_1732870" class="php" name="code">1、使用PHPMailer发送邮件遇到的问题<1>、邮件里不兼容html标签,发送哪些标签里面的正文里都显示出来。在官网下载的源码里examples看到示例,没有提及IsHTML,但是在邮件发送内容里需要加入html标签的时候,send方法里需要设置$mail->IsHTML(true);不然发的标签内容在邮件里都会显示。


<2>、邮件内容里需要链接时,无法打开超链接。解决其实很简单,网站前面的http://不可以省略。如果超链接为<a href='www.szsyhaf.com' target='_blank'>点击进入</a>的话,此链接是无法打开的,查看源代码发现内容为:<a target='_blank'>点击进入</a>,前面的href没有了,结果把http://加上去如:<a href='http://www.szsyhaf.com' target='_blank'>点击进入</a>,超链接就能使用了。

2、局域网访问php程序,局域网电脑访问本地网站无法打开。
<1>、查看Apache/conf/httpd.conf配置是否正确,在配置文件中找到 127.0.0.1 改为 All
<2>、很关键的一步:需要关闭电脑的防火墙。

3、简易判断的写法:
开发中经常用到判断,比如:
if($id==1)
{
   $result="验证成功!";
}
else 
{
   $result="验证失败!";
}
其简略些写法为:$ty="验证成功!";$tn="验证失败!";
$result=$id==1?$ty:$tn;//跟上面的if else 是一个意思,其中要注意在判断的时候$id==1这里,一定是==号,如果用=号是不成立的。

4、删除某个Session变量。
unset($_SESSION['XXX']);

 

5、(标记),学php截至目前,遇到最变态的问题就是php的FTP---ftp_put。有时间有待攻破呐。


6、php中判断是否为整数:
if(!is_numeric($jp_total)||strpos($jp_total,".")!==false){
    echo "不是整数";
}else{
    echo "是整数";
}


7、php中sleep的使用,最开始用的时候发现加上sleep后是暂停的时间后同时显示,这跟java里的完全不一样,结果才知道需要加上flush()。就能实现效果。其中与usleep的区别就是sleep参数的单位是“秒”,而usleep参数的单位是“微秒”
flush();
sleep(5);//==usleep(5000)


8、php中批量替换内容的方法:
$str="1234567890";
$begin=array('1','3','5','7','9');
$end=array('a','b','c','d','e');
echo str_replace($begin,$end,$str);//输出结果为: a2b4c6d8e0


9、php过滤所有html标签属性的正则表达式
//1,过滤所有html标签的正则表达式:
</?[^>]+>

//2,过滤所有html标签的属性的正则表达式:
$html = preg_replace("/<([a-zA-Z]+)[^>]*>/","<\\1>",$html);

//3,过滤部分html标签的正则表达式的排除式(比如排除<p>,即不过滤<p>):
</?[^pP/>]+>

//4,过滤部分html标签的正则表达式的枚举式(比如需要过滤<a><p><b>等):
</?[aApPbB][^>]*>

//5,过滤部分html标签的属性的正则表达式的排除式(比如排除alt属性,即不过滤alt属性):
\s(?!alt)[a-zA-Z]+=[^\s]*

//6,过滤部分html标签的属性的正则表达式的枚举式(比如alt属性):
(\s)alt=[^\s]*
10、php页面跳转
1)、header('Location:test.php');
2)、< meta http-equiv="refresh" content="1;url=test.php">
3)、//推荐使用

11、日期函数的使用
time() —返回当前的 Unix 时间戳
echo time(); //输出当前时间戳,如:1383030681
date()格式化一个本地时间/日期
echo date(‘Y-m-d H:i:s’).‘
’;//输出:当前时间如:2013-10-29 15:08:56
echo date(‘Ymd’); //输出:年月日,20131029
时间戳转格式化日期:
echo date(‘Y-m-d H:i:s’, 1383030681); //输出格式化日期:2013-10-29 15:11:21
strtotime —将任何英文文本的日期时间描述解析为 Unix 时间戳
echo strtotime(date(‘Y-m-d H:i:s’)).‘
’; //输出当前时间戳,如: 1383030681
echo strtotime(“-7 day”); //输出七天前日期
microtime —返回当前 Unix 时间戳和微秒数
echo microtime(true).'
';
echo microtime(false);

12、strpos、strrpos、strripos在使用的时候匹配的出问题。if(strpos('zxyida.com', 'http://www.zxyida.com') != false){.......}这样发现有时候匹配有问题,有些数据匹配是没问题的。仔细看api发现示例用的是===或!==完全匹配。所以在使用strpos、strrpos、strripos的时候需要用完全匹配。if(strpos('zxyida.com', 'http://www.zxyida.com') !== false){.......}


13、做前端开发的时候,本省能正常排版显示,很可能是文件UTF-8 with bom编码造成的(具体的百度之)。解决方法:编辑器基上选择文件后有“Remove BOM“一项,如果可以点击说明是这个问题导致,如果是按钮是灰色说明没问题。


14、js中encodeURIComponent与php对应的转换方法为:urlencode

 

你可能感兴趣的:(PHP开发集锦)