替换php字符串中的单引号为双引号的方法
实例如下:
代码如下 | 复制代码 |
$param="{'id':', 'name':'hi'}";
$new= preg_replace('/\"/','"',$param); |
在处理大量数据的时候,或者同时对几个表操作,而这几个表的操作要求,要么都成功,要么都失败的时候,就需要用到事物,而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);//释放资源 |
运行结果如下所示
相关文章
- 这篇文章主要介绍了C#中截取字符串的的基本方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-03
- 这篇文章介绍了C#判断字符串是否数字或字母的实例,有需要的朋友可以参考一下...2020-06-25
- 这篇文章主要介绍了PostgreSQL判断字符串是否包含目标字符串的多种方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-02-23
- 这篇文章主要介绍了C++ string常用截取字符串方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-04-25
- 本文实例讲述了php字符串按照单词进行反转的方法。分享给大家供大家参考。具体分析如下:下面的php代码可以将字符串按照单词进行反转输出,实际上是现将字符串按照空格分隔到数组,然后对数组进行反转输出。...2015-03-15
- 这篇文章主要介绍了使用list stream:任意对象List拼接字符串操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-09
- 这篇文章主要介绍了C# 16 进制字符串转 int的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了MySQL 字符串拆分操作(含分隔符的字符串截取),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-22
- JS中默认中文字符长度和其它字符长度计算方法是一样的,但某些情况下我们需要获取中文字符串的实际长度,代码如下: 复制代码 代码如下: function strLength(str) { var realLength = 0, len = str.length, charCode = -1;...2014-06-07
- 这篇文章主要介绍了C#实现字符串转换成字节数组的简单实现方法,仅一行代码即可搞定,非常简单实用,需要的朋友可以参考下...2020-06-25
- 文章介绍一个实用的函数,我们如果用php substr来截取字符在中文上处理的很有问题,今天自己写了一个比较好的中文与英文字符截取的函数,有需要的朋友可以参考下。 ...2016-11-25
- 这篇文章主要介绍了C#实现对字符串进行大小写切换的方法,涉及C#操作字符串的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了c#将字节数组转成易读的字符串的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
- 这篇文章主要介绍了PostgreSQL 字符串处理与日期处理操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-01
- 这篇文章主要介绍了C#获取字符串后几位数的方法,实例分析了C#操作字符串的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了C#判断一个字符串是否是数字或者含有某个数字的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了Substring截取字符串方法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
- 在网站开发中,我们经常使用php similar text 计算两个字符串相似度;1,similar_text的用法 如果我想计算"ly89cn"和"ly89"的相似程度,有两种表示方法复制代码 代码如下: echo similar_text('ly89cn', 'ly89'); ...2015-11-08
- 这篇文章主要介绍了C#实现将字符串转换成日期格式的方法,涉及C#操作时间及字符串的相关技巧,非常简单实用,需要的朋友可以参考下...2020-06-25
- 在串口通讯过程中,经常要用到 16进制与字符串、字节数组之间的转换...2020-06-25