按日期归档:2013 年 5 月 27 日

PHP smtp方式发送email

<?php
require("phpmailer/class.phpmailer.php");
$mail = new PHPMailer(); //建立邮件发送类
$mail->CharSet = "UTF-8";
$address ="aj@coolaj.cn";
$mail->IsSMTP(); // 使用SMTP方式发送
$mail->Host = "smtp.exmail.qq.com"; // 您的企业邮局域名
$mail->SMTPAuth = true; // 启用SMTP验证功能
$mail->Username = "aj@coolaj.cn"; // 邮局用户名(请填写完整的email地址)
$mail->Password = "XXX"; // 邮局密码
$mail->Port=25;
$mail->From = "biaobai@coolaj.cn"; //邮件发送者email地址
$mail->FromName = "aj";
$mail->AddAddress("$address", "");//收件人地址,可以替换成任何想要接收邮件的email信箱,格式是AddAddress("收件人email","收件人姓名")
//$mail->AddReplyTo("", "");
//$mail->AddAttachment("/var/tmp/file.tar.gz"); // 添加附件
$mail->IsHTML(true); // set email format to HTML //是否使用HTML格式

$mail->Subject = "test"; //邮件标题
$mail->Body = "ajtest"; //邮件内容,上面设置HTML,则可以是HTML

if(!$mail->Send()){
	echo "邮件发送失败. <p>";
	echo "错误原因: " . $mail->ErrorInfo;
}

?>

代码下载: phpmailer

配置apache虚拟主机

基于不同情况下配置apache虚拟主机的方法,一共八种情况。首先查看你虚拟主机属于哪一种情况,然后对号入座就好了。过程不复杂,关键在于对症下药。

步骤/方法

  1. 基于ip地址的虚拟主机
    Listen 80
    <VirtualHost 172.20.30.40>
    DocumentRoot /home/httpd/html1
    ServerName www.ok1.com
    ErrorLog /usr/local/apache/logs/error1_log
    CustomLog /usr/local/apache/logs/access1_log combined
    </VirtualHost>
    <VirtualHost 172.20.30.50>
    DocumentRoot /home/httpd/html2
    ServerName www.ok2.com
    ErrorLog /usr/local/apache/logs/error2_log
    CustomLog /usr/local/apache/logs/access2_log combined
    </VirtualHost>
  2. 基于IP 和多端口的虚拟主机配置
    Listen 172.20.30.40:80
    Listen 172.20.30.40:8080
    Listen 172.20.30.50:80
    Listen 172.20.30.50:8080
    <VirtualHost 172.20.30.40:80>
    DocumentRoot /www/example1-80
    ServerName www.example1.com
    </VirtualHost>
    <VirtualHost 172.20.30.40:8080>
    DocumentRoot /www/example1-8080
    ServerName www.example1.com
    </VirtualHost>
    <VirtualHost 172.20.30.50:80>
    DocumentRoot /www/example2-80
    ServerName www.example1.org
    </VirtualHost>
    <VirtualHost 172.20.30.50:8080>
    DocumentRoot /www/example2-8080
    ServerName www.example2.org
    </VirtualHost>
  3. 单个IP 地址的服务器上基于域名的虚拟主机配置
    # Ensure that Apache listens on port 80
    Listen 80
    # Listen for virtual host requests on all IP addresses
    NameVirtualHost *:80
    <VirtualHost *:80>
    DocumentRoot /www/example1
    ServerName www.example1.com
    ServerAlias example1.com. *.example1.com
    # Other directives here
    </VirtualHost>
    <VirtualHost *:80>
    DocumentRoot /www/example2
    ServerName www.example2.org
    # Other directives here
    </VirtualHost>
  4. 在多个IP 地址的服务器上配置基于域名的虚拟主机
    Listen 80
    # This is the “main” server running on 172.20.30.40
    ServerName server.domain.com
    DocumentRoot /www/mainserver
    # This is the other address
    NameVirtualHost 172.20.30.50
    <VirtualHost 172.20.30.50>
    DocumentRoot /www/example1
    ServerName www.example1.com
    # Other directives here …
    </VirtualHost>
    <VirtualHost 172.20.30.50>
    DocumentRoot /www/example2
    ServerName www.example2.org
    # Other directives here …
    </VirtualHost>
  5. 在不同的端口上运行不同的站点(基于多端口的服务器上配置基于域名的虚拟主机)
    Listen 80
    Listen 8080
    NameVirtualHost 172.20.30.40:80
    NameVirtualHost 172.20.30.40:8080
    <VirtualHost 172.20.30.40:80>
    ServerName www.example1.com
    DocumentRoot /www/domain-80
    </VirtualHost>
    <VirtualHost 172.20.30.40:8080>
    ServerName www.example1.com
    DocumentRoot /www/domain-8080
    </VirtualHost>
    <VirtualHost 172.20.30.40:80>
    ServerName www.example2.org
    DocumentRoot /www/otherdomain-80
    </VirtualHost>
    <VirtualHost 172.20.30.40:8080>
    ServerName www.example2.org
    DocumentRoot /www/otherdomain-8080
    </VirtualHost>
  6. 基于域名和基于IP 的混合虚拟主机的配置
    Listen 80
    NameVirtualHost 172.20.30.40
    <VirtualHost 172.20.30.40>
    DocumentRoot /www/example1
    ServerName www.example1.com
    </VirtualHost>
    <VirtualHost 172.20.30.40>
    DocumentRoot /www/example2
    ServerName www.example2.org
    </VirtualHost>
    <VirtualHost 172.20.30.40>
    DocumentRoot /www/example3
    ServerName www.example3.net
    </VirtualHost>

在命令行执行PHP程序

一直把PHP当web端服务程序了,不知道他也是脚本,脚本啊,亲

配置说明

①. 添加php目录到系统环境变量path

②.

param1,param2,为参数。xxx.php文件可以接受传入的这两个参数,分别用$argv[1],$argv[2]接受传入的param1和param2.。

示例xxx.php:

<?php
for($i=$argv[1];$i<=$argv[2];$i++)
{
echo $i."\n";
}
?>

 

在命令行下运行:php xxx.php 1 10

则输出:1 2 3 4 5 6 7 8 9 10

您可以设置cookie,管理数字签名和重定向用户,而且它提供了极好的连通性到其它数据库(还有ODBC),集成各种外部库来做用PDF文档解析 XML的任何事情。那你还知道可以用php的强大功能做点别的东西吗?在以独立的cgi方式运行时,需要一个php可执行程序,他有很多PHP命令行参数 的,有些可以用作很好玩的用途,下面是全部的PHP命令行参数,其中[]表示可有可无的,<>表是一定要的。

用法 php [-q] [-h] [-s] [-v] [-i] [-f ] | { [args…]} -q 安静模式。不输出HTTP头。

-s 将php程序文件用转化为彩色格式的HTML(比如保留字用绿色,函数和变量为蓝色,注释为黄色而字串则是红色等等。

-f 读入并解释指明的文件。

-c 在中读入php.ini文件

-a 交互式运行

-d foo[=bar] 定义ini中的输入项 foo 的值为 bar

-e 输出额外信息以便调试和性能分析

-z 调入Zend扩展文件

-i php的相关信息

-h help本身。

1.用php -q 文件名.php 方式把php程序当shell程序来用,

2.用 -s把自己的php程序html化。这样是不是很省心?

3.利用PHP命令行参数的odbc功能可以在shell命令中对数据库进行操作。

 

③一个读取数据并插入到数据库的例子

<?php
$Host = "localhost";
$Database = "test";
$DbaUser     = "root";
$DbaPassword = "";
$db = mysql_pconnect($Host, $DbaUser,$DbaPassword);
mysql_set_charset('utf8', $db); 
if(!$db){
	echo "我擦,数据库崩溃了~";
	exit;
}
mysql_select_db($Database,$db);
/*while($res = mysql_fetch_array($result)){var_dump($res);}*/
$handle = @fopen("F:/wamp/www/bb/ok_all0525.txt", "r");
if ($handle) {
	while (!feof($handle)) {
		$str = fgets($handle, 4096);
		$arr = explode(",",$str);
		$qq = explode("@",$arr[0]);
		$query = "INSERT INTO `qq` (`qq`,`b1`,`b2`,`b3`) VALUES ('{$qq[0]}','{$arr[1]}','{$arr[2]}','{$arr[3]}')";
		$result = mysql_query($query);
		var_dump($qq[0].$result);
	}
	echo 'ok';
}

mysql_close($db);
?>