多数大学生出来选择的工作和专业无关
首页 > 新闻动态 > 香港最快场开奖结果手机客户端

PHP随机数生成与使用解析

时间:2018-03-28 18:01:05 [来源]:郑州PHP培训学校

   PHP随机数生成与使用解析

  PHP使用rand()函数产生并返回随机数。PHP随机数的应用比较广泛,本文我们主要学习PHP随机数的一些基础,通过示例了解如何使用PHP在一个集合中随机提取元素。
  在PHP程序设计中,随机数的生成尤为重要。我们需要用随机数在我们的页面中展示随机记录(比如图片、用户记录、文章ID等)。我们还可以使用随机数设计任何我们想象的程序结构。
  首先来认识一下PHP提供的随机数函数rand()。PHP的rand()函数将返回随机整数,具体使用方法如下rand(min,max)
  可选参数min和max可以使rand() 返回0到RAND_MAX之间的伪随机整数。例如,想要5到15(包括 5 和 15)之间的随机数,用 rand(5, 15)。
  下面我来看一个具体的示例,我们做一个基本的函数调用,不设置具体的参数,我们得到的随机数将不受min和max两个参数的限制。
  echo(rand());?>
  得到的结果:652696728 (随机结果)
  1、使用PHP生成指定区间内的随机数
  如果我们要生成两个数字之间的随机数,我们需要为rand设定两个参数:
  这样,我们得到的结果就在我们的控制之中,他应该是MinNum <= result <= MaxNum;假设我们要使用PHP生成10000到2000之间的随机数,我们的代码应该这样写:
  echo(rand(1000,2000));?>
  够简单吧,下面来点稍微有些难度的。在本文的开始我们说过,随机数的作用很大,我们可以用PHP随机数解决一些复杂的问题。
  2、使用PHP获得一个集合中的随机元素
  将设我们需要从一个数组中获得一个随机元素
  $my_array=array('ASP','PHP','JAVASCRIPT','AJAX','CSS','JQUERY','HTML');echo($my_array[rand(0,6)]);
  ?>
  可以想象,我们得到的结果可能是ASP、PHP或JavaScript等任何一个包含在数组中的元素。注意,我们的my_array数组包含七个元素,我们将rand()的参数设置为0到6之间。
  下面我们使用两组随机数对上面的示例做功能增强,我们需要一个随机数进行条件判断,另一个随机数做元素的输出。
  $my_array=array('ASP','PHP','JAVASCRIPT','AJAX','CSS','JQUERY','HTML');$repetition=rand(0,6);
  for($i=0;$i<=$repetition;$i++){
  echo('I am learning ' . $my_array[rand(0,6)]);echo(' on 51CTO.com');
  }
  ?>
  我们得到的结果可能像下面这样:
  PHP随机数结果示例
  第一次运行我们得到三条结果
  由于我们使用一个随机数限定显示的条数,所以得到的结果除了文章随机,显示的条数也是随机的,如下图:
  PHP随机数
  第二次运行得到七条结果
  也许你会问,PHP随机数只能做这些无聊的事儿吗?rand( )看来并不是那么重要;你错了,想想随处可见的验证码、一些CMS系统的随机文章提取、下载地址分配等,随机数在这些应用中发挥着重要作用;另外,在安全和算法领域,随机数的很多应用也值得我们去深入研究,比如加密和同余法结构等。
  PHP发送邮件乱码的具体解决方法
  PHP发送邮件乱码这中情况对于经验不足的程序员来说是经常会遇到的问题,在接下来的文章中将会为大家具体介绍相关的解决方法。
  我们曾经在前面一些文章中具体介绍了PHP发送邮件的相关方法和函数的使用。但是在实际操作过程中也还会遇到一些问题,比如会出现PHP发送邮件乱码这样的问题。
  下面这段代码就是PHP发送邮件乱码的具体解决方法的示例:
  < ?php
  #email.php 2009-11-04
  $name = $_POST['name'];
  $mail = $_POST['mail'];
  $content = $_POST['content'];
  $subject = '测试专用';
  $subject = "=?UTF-8?B?".
  base64_encode($subject)."?=";
  $body = "来自:$mail\n姓名:
  $name\n\n内容:$content";
  $headers = "MIME-Version: 1.0\r\n";
  $headers .= 'Content-type:
  text/html; charset=utf-8' . "\r\n";
  $headers .= "Content-
  Transfer-Encoding: 8bit\r\n";
  if(mail('*****@qq.com',
  $subject,$body,$header)){
  echo 'success';
  }else{
  echo 'fail';
  }
  ?>
  希望同构对这段代码的了解,大家能避免PHP发送邮件乱码这种情况的出现。
  如何正确运用PHP发送邮件函数
  PHP发送邮件函数是一个比较复杂的函数。希望大家能够通过本文举出的具体代码示例,充分了解这一函数的功能及应用方法。
  PHP语言的功能非常强大,我们可以运用它来满足很多种需求。在这里,我们将向大家介绍有关PHP发送邮件函数的具体应用,从另一个角度来了解这项语言。
  PHP发送邮件函数的应用代码示例:
  #echo send_mail($_POST["email"],$tosubject,$_POST["errortext"]);echo send_mail('someone@126.com','only a test mail for test php mail function','一封垃圾邮件');echo time();
  function send_mail($to, $subject = 'No subject', $body) {$loc_host = "mail.server"; //发信计算机名,可随意$smtp_acc = "smp@163.com"; //Smtp认证的用户名$smtp_pass="pwdpwd"; //Smtp认证的密码,一般等同pop3密码$smtp_host="smtp.163.com"; //SMTP服务器地址,类似 smtp.tom.com$from="smp@163.com"; //发信人Email地址,你的发信信箱地址$deliver=$smtp_acc; //回复到指定邮箱
  $headers = "Content-Type: text/plain; charset=\"gb2312\"\r\nContent-Transfer-Encoding: base64";$lb="\r\n"; //linebreak
  $hdr = explode($lb,$headers); //解析后的hdrif($body) {$bdy = preg_replace("/^\./","..",explode($lb,$body));}//解析后的Body$smtp = array(
  //1、EHLO,期待返回220或者250
  array("EHLO ".$loc_host.$lb,"220,250","HELO error: "),//2、发送Auth Login,期待返回334
  array("AUTH LOGIN".$lb,"334","AUTH error:"),//3、发送经过Base64编码的用户名,期待返回334array(base64_encode($smtp_acc).$lb,"334","AUTHENTIFICATION error : "),//4、发送经过Base64编码的密码,期待返回235array(base64_encode($smtp_pass).$lb,"235","AUTHENTIFICATION error : "));//5、发送Mail From,期待返回250
  $smtp[] = array("MAIL FROM: <".$from.">".$lb,"250","MAIL FROM error: ");//6、发送Rcpt To。期待返回250
  $smtp[] = array("RCPT TO: <".$to.">".$lb,"250","RCPT TO error: ");//7、发送DATA,期待返回354
  $smtp[] = array("DATA".$lb,"354","DATA error: ");//8.0、发送From
  $smtp[] = array("From: ".$deliver.$lb,"","");//8.2、发送To
  $smtp[] = array("To: ".$to.$lb,"","");
  //8.1、发送标题
  $smtp[] = array("Subject: ".$subject.$lb,"","");//8.3、发送其他Header内容
  foreach($hdr as $h) {$smtp[] = array($h.$lb,"","");}
  //8.4、发送一个空行,结束Header发送
  $smtp[] = array($lb,"","");
  //8.5、发送信件主体
  if($bdy) {foreach($bdy as $b) {$smtp[] = array(base64_encode($b.$lb).$lb,"","");}}
  //9、发送“.”表示信件结束,期待返回250
  $smtp[] = array(".".$lb,"250","DATA(end)error: ");//10、发送Quit,退出,期待返回221
  $smtp[] = array("QUIT".$lb,"221","QUIT error: ");//打开smtp服务器端口
  $fp = @fsockopen($smtp_host, 25);
  if (!$fp) echo "<b>Error:</b> Cannot conect to ".$smtp_host."<br>";while($result = @fgets($fp, 1024)){if(substr($result,3,1) == " ") { break; }}
  $result_str="";
  //发送smtp数组中的命令/数据
  foreach($smtp as $req){
  //发送信息
  @fputs($fp, $req[0]);
  //如果需要接收服务器返回信息,则
  if($req[1]){
  //接收信息
  while($result = @fgets($fp, 1024)){
  if(substr($result,3,1) == " ") { break; }
  };
  if (!strstr($req[1],substr($result,0,3))){$result_str.=$req[2].$result."<br>";
  }
  }
  }
  //关闭连接
  @fclose($fp);
  return $result_str;
  }
  希望上面这段代码示例能让大家充分掌握PHP发送邮件函数的运用。
 

上一篇:PHP字符串函数的分类总结

下一篇:PHP抓取网页内容的技巧分享