首页 > 编程技术 > php

替换php字符串中的单引号为双引号的方法

发布时间:2017-7-6 23:49

小编给大家推荐的这篇文章介绍了替换php字符串中的单引号为双引号的方法,非常实用,有兴趣的同学快看看吧。

实例如下:

 代码如下复制代码

$param="{'id':཈', 'name':'hi'}";

 

$new= preg_replace('/\"/','"',$param);

本文介绍了php使用PDO事务配合表格读取大量数据插入操作实现方法,非常实用,有兴趣的同学快来看看吧。

在处理大量数据的时候,或者同时对几个表操作,而这几个表的操作要求,要么都成功,要么都失败的时候,就需要用到事物,而PDO中提供的事物,一般可以满足需求。

本篇文章,只涉及一个小例子。

在向数据库导入一个表格的时候,难免excel文件中存在部分错误,如果用常规方法,将会导致,一部分插入了数据库,一部分没有插入,会带了很大的不便。

 

 代码如下 复制代码

<?php

header("Content-Type: text/html; charset=utf-8");

error_reporting(E_ALL ^ E_NOTICE);

require_once'excel_reader2.php';//导入excel_reader文件

$data=newSpreadsheet_Excel_Reader();//创建对象

$data->setOutputEncoding('UTF-8');//设置编码格式

$data->read("example.xls");//读取excel文档*/

echo$hang=$data->sheets[0]['numRows']."行<br>";//读出一共几行

echo$lie=$data->sheets[0]['numCols']."列<br>";//读出一共几列

$dbms='mysql';

$dbname='biaoge';

$user='root';

$pwd='123456';

$host='localhost';

$dsn="$dbms:host=$host;dbname=$dbname";

try{

  $pdo=newPDO($dsn,$user,$pwd);

  $pdo->exec("SET NAMES UTF8");//设置数据库编码

  $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);//异常模式

  $pdo->beginTransaction();//开启事物

  $query="INSERT INTO test SET id1=?,id2=?,id3=?,id4=?,id5=?";//预编译插入语句

  $result=$pdo->prepare($query);

//  $result->execute(array("111","222","333","444","555"));

//  $pdo->commit();

  for($i= 1;$i<=$hang;$i++) {

    $id1=$data->sheets[0]['cells'][$i][1];

    $id2=$data->sheets[0]['cells'][$i][2];

    $id3=$data->sheets[0]['cells'][$i][3];

    $id4=$data->sheets[0]['cells'][$i][4];

    $id5=$data->sheets[0]['cells'][$i][5];

    $result->bindParam(1,$id1);//绑定参数

    $result->bindParam(2,$id2);//绑定参数

    $result->bindParam(3,$id3);//绑定参数

    $result->bindParam(4,$id4);//绑定参数

    $result->bindParam(5,$id5);//绑定参数

    echo$result->execute();//执行插入操作

  }

  $pdo->commit();//执行事物的提交操作*/

}catch(PDOException$e){

  die("Error!: ".$e->getMessage().'<br>');

  $pdo->rollBack();//执行事物的回滚操作

}

 

补充:

异常模式将会创建一个PDOException,并设置errorCode属性,它可以将执行代码封装到一个try{}catch{}语句块中。未捕获的异常将会导致脚本中断,并显示堆栈跟踪让用户了解是哪里出现了问题。
除此之外:

警告模式会产生一个PHP警告,并设置errorCode属性。如果设置的是警告模式,那么除非明确的检查错误代码,否则程序将继续按照其方式运行。

在默认模式中设置PDOStatement对象的errorCode属性,但不进行其他任何操作。

小编推荐的这篇文章介绍了使用PHPMailer发送邮件实例,非常实用,有兴趣的同学快来看看吧。

PHPMailer类源代码下载地址:https://github.com/PHPMailer/PHPMailerhttps://github.com/PHPMailer/PHPMailer

 

 代码如下 复制代码

<?php

/*

to:  邮件接收地址

subject: 邮件主题

body: 邮件内容

attachpath:附件地址

cc: 邮件抄送地址

bcc: 邮件暗抄送地址

*/

functionsend_mail($to,$subject="",$body="",$attachpath="",$cc="",$bcc="")

{

 // 对邮件内容进行必要的过滤

 $body=eregi_replace("[\]",'',$body); 

  

 // 设定时区

 date_default_timezone_set("PRC");

  

 require_once('class.phpmailer.php');

 require_once("class.smtp.php");

  

 // 实例化PHPMailer对象

 $mail=newPHPMailer();    

  

 // 设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置为 UTF-8

 $mail->CharSet ="UTF-8";

  

 // 设定使用SMTP服务

 $mail->IsSMTP();

  

 // 启用 SMTP 验证功能

 $mail->SMTPAuth = true;

  

 // SMTP 安全协议

 $mail->SMTPSecure ="ssl";

  

 // SMTP 服务器

 $mail->Host ="smtp.qq.com";

  

 // SMTP服务器的端口号

 $mail->Port = 465;

  

 // SMTP服务器用户名和密码

 $mail->Username ="xxxxxx@qq.com"; 

 $mail->Password ="xxxxxx";  

  

 // 设置发件人地址和名称,名称可有可无

 $mail->SetFrom("xxxxxx@qq.com","xxxxxx");

  

 // 设置邮件接收地址和名称,第二个参数无所谓。必须用AddAddress添加邮件接收地址。AddReplyTo方法没什么用。

 //$mail->AddReplyTo("xxxxxx@163.com", "xxxxxx");

 $mailaddrs= split(",",$to);

 foreach($mailaddrsas$addres)

 {

 //校验邮箱地址是否合法

 if(filter_var($addres, FILTER_VALIDATE_EMAIL))

 {

  $mail->AddAddress($addres); 

 }

 }

  

 // 设置邮件抄送地址

 if($cc!="")

 {

 $ccaddrs= split(",",$cc);

 foreach($ccaddrsas$ccaddr)

 {

  //校验邮箱地址是否合法

  if(filter_var($ccaddr, FILTER_VALIDATE_EMAIL))

  {

  $mail->addCC($ccaddr); 

  }

 }

 }

  

 // 设置邮件暗抄送地址,私密发送

 if($bcc!="")

 {

 $bccaddrs= split(",",$bcc);

 foreach($bccaddrsas$bccaddr)

 {

  //校验邮箱地址是否合法

  if(filter_var($bccaddr, FILTER_VALIDATE_EMAIL))

  {

  $mail->addBCC($bccaddr); 

  }

 }

 }

  

 // 设置邮件主题

 $mail->Subject =$subject;

  

 // 可选项,向下兼容考虑

 $mail->AltBody ="为了查看该邮件,请切换到支持 HTML 的邮件客户端";

  

 // 设置邮件内容

 $mail->MsgHTML($body);    

  

 //使用HTML格式发送邮件

 $mail->IsHTML(true);

  

 // 添加附件,第一个参数是附件地址,第二个参数附件名

 //$mail->AddAttachment("images/phpmailer.gif");

 $mail->AddAttachment($attachpath);

  

 // 发送邮件

 if(!$mail->Send())

 {

 echo"发送失败:".$mail->ErrorInfo . PHP_EOL;

 }

 else

 {

 echo"恭喜,邮件发送成功!". PHP_EOL;

 }

}

$emailAddr="xxxxxx@163.com,xxxxxx@qq.com,";

send_mail($emailAddr,"测试邮件","<h1>使用PHPMailer类发送的邮件。</h1>","mail/20170216.gif","xxxxxx@qq.com","");

?>

 

测试结果:

说明:第44行的SMTP服务器密码为qq邮箱授权码。

登录QQ邮箱->设置->账户->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务->生成授权码

小编给大家推荐的这篇文章介绍了php使用GD2绘制几何图形示例,非常实用,有兴趣的同学快来看看吧。

使用GD2函数不仅可以绘制线条图形,而且可以绘制填充图形,如填充圆形,填充矩形等。下面对GD2中常用的填充图形的绘制方法进行介绍。

bool imagefill( resource image, int x, int y, int color )

imagefill()函数在image图像的坐标( x, y ) (图像的左上角为(0,0))处用color颜色执行区域填充(即与(x,y)点颜色相同切相邻的点都会被填充)。

bool imagefilledarc ( resource image , int cx , int cy , int w , int h , int s , int e , int color , int style )

imagefilledarc() 在 image 所代表的图像中以 cx,cy(图像左上角为 0, 0)画一椭圆弧。成功时返回 TRUE,  或者在失败时返回 FALSE.w 和 h 分别指定了椭圆的宽和高,s 和 e 参数以角度指定了起始和结束点。style  可以是下列值按位或(OR)后的值:

IMG_ARC_PIE
IMG_ARC_CHORD
IMG_ARC_NOFILL
IMG_ARC_EDGED

IMG_ARC_PIE 和 IMG_ARC_CHORD 是互斥的;IMG_ARC_CHORD  只是用直线连接了起始和结束点,IMG_ARC_PIE  则产生圆形边界(如果两个都用,IMG_ARC_CHORD生效)。IMG_ARC_NOFILL  指明弧或弦只有轮廓,不填充。IMG_ARC_EDGED 指明用直线将起始和结束点与中心点相连,和 IMG_ARC_NOFILL  一起使用是画饼状图轮廓的好方法(而不用填充)。

bool imagefilledellipse ( resource image , int cx , int cy , int w , int h , int color )

imagefilledellipse() 在 image 所代表的图像中以 cx,cy(图像左上角为 0, 0)为中心画一个椭圆。w 和 h 分别指定了椭圆的宽和高。椭圆用 color 颜色填充。成功时返回 TRUE, 或者在失败时返回 FALSE.

bool imagefilledrectangle( resource image, int x1, int y1, int x2, int y2, int color )

该函数在image图像中绘制一个用color颜色填充了的矩形, 其左上角坐标为(x1, y1),右下角的坐标为(x2, y2)。(0,0)为图像的左上角。

例如:应用如上函数,绘制填充圆形和填充正方形,代码如下

 代码如下复制代码

<?php

  header("Content-type: image/png");//将图像输出到浏览器

  $img= imagecreate(400, 200);//创建一个400X200的画布

  $bg= imagecolorallocate($img, 0, 0, 255);//设置背景颜色

  $white= imagecolorallocate($img, 255, 255 ,255);//设置填充颜色

  imagefilledellipse($img, 100, 100, 150, 150,$white);//绘制填充圆形

  imagefilledrectangle($img, 200, 50, 300, 150,$white);//绘制填充正方形

  imagepng($img);//以png格式输出图像

  imagedestroy($img);//释放资源

运行结果如下所示

标签:[!--infotagslink--]

您可能感兴趣的文章: