PHP 更高效的字符长度判断例子

 更新时间:2016年11月25日 17:06  点击:2196
在php中测试字符串长度的函数是strlen,但今天我发现使用isset更加的更高效哦,口说不你不相信下面我举两个例子来给各位看看。

学PHP的都了解,在PHP中获取字符串有一个strlen自带函数;

这里和大家分享一个在一些特定情况下判断字符串长度较为高效的方式;

来看下面两段代码的执行效率吧,自己理解理解代码的执行思路:

 代码如下 复制代码

<?php 

   //使用strlen方式 

   $arr = '123456'; 

   $sTime = microtime(1); 

   if(strlen($arr) > 6){ 

    // echo 1; 

  }     

   echo microtime(1) - $sTime; 

  // 输出:0.00035595893859863 

 /*-------------------------------------*/

   //使用isset($arr{})方式 

   $arr = '123456'; 

   $sTime = microtime(1); 

   if(!isset($arr{6})){ 

    // echo "1rn"; 

   } 

   echo microtime(1) - $sTime; 

// 输出:0.00019097328186035

Warning: Invalid argument supplied for foreach() 的中文意思是说foreach需要是一个数组而给它的是一个无效的参数。

在没有购物商品直接进入购物车时竟然出现警告提示

php下foreach()错误提示Warning: Invalid argument supplied for foreach()

错误提示:

Warning: Invalid argument supplied for foreach() in E:wampwwwmyshopcart.php on line 95
 

解决方案:就是在循环前面加上判断

直接使用is_array判断给的值是不是为数组

 代码如下 复制代码

if(is_array($items) && !empty($items)){

foreach( )

或者 强制转换数据类型

 代码如下 复制代码

foreach((array)$v as $k1 => $v1) {
     $edu[$k1][$k] = my_h($v1);// v1是最终要入库的数据,进行转义处理
}

留言板是在刚接触php时用来学习的一个简单的应用例子了,今天我再给初学php的朋友提供一个完整的php留言板的全部制作过程,希望对你会有帮助。

在网上找了这方面的教程 但是基本就是没有人说什么 然后在某一天看见一个PHP程序设计出了一张类似这样的数据库设计图之后就有了很多领悟!下面是数据库的结构图

 

 下面我们就来继续一下介绍

   id                        这个算是父Id 可以通过这个id来查询 在这个id下是否有子id 同时也可以记录这个是那条留言的id 

   son_id                  这个是子id 然后通过这个id 可以找到相对应的父id
   news_id                记录文章的id
   sender_author       接受留言的人
   receiver_author     发送留言的人
   content                留言的内容
   status                   在有人回复你的帖子的时候 这个值从0转为1时候 该消息不在显示 如果没点击进去 该消息依然存在
   time                     记录留言的时间

 留言板回复思路

 当发送方(也就留言的人)要到该文章下留言或者回复的的时候就需要接收方(也就文章的作者或者要被回复的人)来接收。单数据库语句查询到这个键sender_author和receiver_author 的是就会知道接收方是谁和发送方是谁了。然后在根据这个判断来显示出回复内容

 

  提示你有一条新的消息思路

 当发送方发送消息的时候 这个status的值默认为0 就是提示接收发 你有一条新的消息。当点击进去的时候 调用数据库修改语句把指定的值修改成为1 这样就不显示了                  

 

查看评论的时候 的数据库操作语句

 

 代码如下 复制代码

 

function message($id){   
  $query = $this->db->query("SELECT * FROM message WHERE news_id = '$id'");//或者文章id后查询里面所有评论  
  return $query->result();   
 }

 

这个是获取父的留言内容的代码

 代码如下 复制代码


<?php foreach($query as $sel){?>
<p>留言用户:<?php echo $sel->receiver_author;?> 留言内容:<?php echo $sel->content?></p>
<?php }?>

 

证 用户是否登陆 并给予留言权限

 

 代码如下 复制代码

 

<form id="form1" name="form1" method="post" action="<?php echo site_url()."/publish/user_message"?>">
<textarea rows="5" cols="50" name="huifu" <?php if($uere_name == "0"){echo "disabled";}?> >
<?php
 if($uere_name == "0")
{echo "抱歉你还没登录不能进行留言";}
?>www.111cN.net
</textarea>
<input class="wole" name="author" value="<?php echo $author;?>" /><!--接受方帖子作者-->
<input class="wole" name="news_id" value="<?php echo $news_idx;?>" /><!--文章id-->
<input type="submit" name="Submit"/>
</form>
<script language="javascript">
function updateinfo(){
  if(<?php echo $uere_name;?> == 1){
    document.form1.Submit.value = "留言";
    document.form1.Submit.disabled = false;
  }
  else{
    document.form1.Submit.value = "还未登录";
 document.form1.Submit.disabled = "disabled";
  }
}
updateinfo();
</script>

 

这个是显示了 获取指定的父id 之后来显示他里面的全部子id 和留言内容

 

 代码如下 复制代码

 

<p>这里是<?php echo $is;?>楼 用户:<?php echo $sel->receiver_author;?> <br />留言内容:<?php echo $sel->content?>&nbsp;&nbsp;&nbsp;

<a onClick="showdiv('contentid<?php echo $is;?>','showtext<?php echo $is;?>')" href="javascript:void(0)">回复</a>
<div id="contentid<?php echo $is;?>" class="none">
<?php 
 $query = $this->db->query("select * from message where son_id ='$sel->id' order by id");//获取指定父id的子回复
 $revis = $query->result();
    foreach($revis as $row){?>
 <p><?php if($row->sender_author == $row->receiver_author){echo $row->sender_author;}
 else{ echo $row->sender_author."回复了:".$row->receiver_author;}?>
  内容是:<?php echo $row->content?></p>
<?php }?>
<form action="<?php echo site_url()."/publish/son_message"?>" method="post">
<input name="son_idx" class="wole" value="<?php echo $sel->id?>" />
<input name="receiver_author" class="wole" value="<?php echo $sel->receiver_author;?>" />
<input class="wole" name="news_id" value="<?php echo $news_idx;?>" /><!--文章id-->
<textarea rows="5" cols="50" name="huifux"></textarea>
<br><input type="submit" name="sub" value="回复"></form></div></p>
<script language="JavaScript" type="text/JavaScript">
<!--www.111cn.net
function showdiv(targetid,objN){
  
      var target=document.getElementById(targetid);
      var clicktext=document.getElementById(objN)
     
            if (target.style.display=="block"){
                target.style.display="none";
                clicktext.innerText="回复";
 

            } else {
                target.style.display="block";
                clicktext.innerText='收起';
            }
  
}
-->
</script>

 

这个是实现之后的效果图片 留言板已经实现了 留言内容回复

 然后这个是实现了 回复你的时候 会显示你有一条新的留言 

保存数据到mysql数据库中我们需要使用update或insert来协助我们完成,下面我给学习php的朋友介绍几个应用例子,希望文章给你带来帮助。

我们先来介绍INSERT语句

语法1: INSERT INTO table_name VALUES ("1", "2")

解说: 就是插入插入2个值。第一个值为:1 第二个值为:2

 
语句2:INSERT INTO table_name (column1, column2)VALUES (value1, value2)

解说:就是根据指定的键!插入指定的值。在字段 column1 插件的值为:value1 ,然后再字段column2 插入的值为:value2

INSERT语句的列子

 代码如下 复制代码

<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("my_db", $con);

mysql_query("INSERT INTO Persons (FirstName, LastName, Age)
VALUES ('Peter', 'Griffin', '35')");

mysql_query("INSERT INTO Persons (FirstName, LastName, Age)
VALUES ('Glenn', 'Quagmire', '33')");

mysql_close($con);
?>

例子

 代码如下 复制代码

<?php  
 /* 
  * 资料保存 
  * 程序:刘兴 
  * 时间:2010-6 
  */ 
?>  
<!DOCTYPE html PUBLIC ”-//W3C//DTD XHTML 1.0 Transitional//EN” ”http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>  
<html xmlns=”http://www.w3.org/1999/xhtml”>  
<?php   
  require_once(“gxpass.php”);//引入密码验证   
  require_once(“connDB.php”);//引入数据库连接参数    
  $zl=$_POST;  
 
//数据保存  
  list ($pid,$pname)=split(‘-’,$zl[people]);  
  $year=$zl[year];  
  $jd=$zl[jd];     
  foreach($zl as $key => $value){    
   if  (strstr($key,”fs”)) {  
   if (strstr($key,”kfs”)){  
          $khxm=substr($key,3,strlen($key)-3);  
    $fs=$zl[$key];  
    continue;             
   }   //www.111cn.nEt
   else{  
          $khxm=substr($key,2,strlen($key)-2);  
   }     
      $khfs=$value;   
   $khinfo=$zl[$khxm];        
          $sql=”delete from khzl where peopleid=’$pid’ and khbm=’$khxm’ and time=’$jd’ and year=’$year’”;  
    $result=mysql_query($sql) ;            
       $sql=”INSERT INTO khzl (peopleid ,khbm ,fenshu ,time ,year ,info,fs ) VALUES  (‘$pid’, ’$khxm’, $khfs, ’$jd’, ’$year’, ’$khinfo’,'$fs’)”;  
    $fs=0;  
   $result=mysql_query($sql);    
   }  
 }   
?>  
<head>  
<meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″ />  
<title>数据保存</title>  
</head>  
<body>  
<?php   
 
//网址转向  
echo ”<script language=’javascript’>”;   
echo ” location=’peoplexz.php’;”;   
echo ”</script>”;  
?>  
</body>  
</html> 

一聚教程小编提醒你,保存数据时我们要注意页面之间的编码以免出现不必要的麻烦了,还有就是数据类型与我们提交的数据要一致否则数据是保存不成功的哦。

php中要查询mysql数据库中的内容我们必须先连接mysql数据库,然后再利用sql语句进行查询,下面我们来看一些例子吧。

sql有许多对数据库操作的语句。但是常见和比较需要的是这么几个语句 。SELECT 语句用于从数据库中选取数据。
 

那么我们先来介绍第一种 SELECT语句

语句1:SELECT *  FROM table_name

解说:意思就是读取整个表table_name里面的数据显示出来

语句1:SELECT * FROM table_name Where x = 1

解说:意思就是读取表table_name里面键名为:x 值为:1的 数据显示出来
 

Select 查询语句的例子

 代码如下 复制代码
<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
mysql_select_db("my_db", $con);
$result = mysql_query("SELECT * FROM Persons");
while($row = mysql_fetch_array($result))
  {
  echo $row['FirstName'] . " " . $row['LastName'];
  echo "<br />";
  }
mysql_close($con);
?>
 

例子

 代码如下 复制代码

<?php
define ('HOSTNAME', 'localhost'); //数据库主机名
define ('USERNAME', 'username'); //数据库用户名
define ('PASSWORD', 'password'); //数据库用户登录密码
define ('DATABASE_NAME', 'testdb'); //需要查询的数据库
$db = mysql_connect(HOSTNAME, USERNAME, PASSWORD) or
         die (mysql_error());
//连接不上,就会显示mysql出错的原因。
mysql_select_db(DATABASE_NAME);
//切换到testdb www.111cn.net
$query =
"SELECT uri,title FROM testdb WHERE 1 ORDER by rand() LIMIT 1";
//上面这句的意思是从testdb中随机提取一条数据。
$result = mysql_query($query);
//查询
while ($row = mysql_fetch_array($result)) { echo "<p id="title">" ,
($row['title']) , "</p><p id="uri">&ndash;" , nl2br($row['uri'])
, "</p>"; }
//显示结果
mysql_free_result($result);
//释放结果
mysql_close();
//关闭连接
?>

mysql中文数据出现乱码

数据库采用UTF8编码,而页面申明编码是GB2312,这是最常见的产生乱码的原因。这时候在PHP脚本里面直接SELECT数据出来的就是乱码,需要在查询前先使用:

 代码如下 复制代码

mysql_query("SET NAMES GBK");或mysql_query("SET NAMES GB2312");

来设定MYSQL连接编码,保证页面申明编码与这里设定的连接编码一致(GBK是GB2312的扩展)。如果页面是UTF-8编码的话,可以用:

mysql_query("SET NAMES UTF8"); 注意是UTF8而不是一般用的UTF-8。假如页面申明的编码与数据库内部编码一致可以不设定连接编码。

代码如下:

 代码如下 复制代码

$mysql_mylink = mysql_connect($mysql_host, $mysql_user, $mysql_pass);
mysql_query("SET NAMES 'GBK'");

[!--infotagslink--]

相关文章

  • Linux下PHP安装curl扩展支持https例子

    安装curl扩展支持https是非常的重要现在许多的网站都使用了https了,下面我们来看一篇关于PHP安装curl扩展支持https例子吧。 问题: 线上运行的lamp服务器,默认yu...2016-11-25
  • php使用floor去掉小数点的例子

    floor会产生小数了如果我们不希望有小数我们是可以去除小数点的了,下面一聚教程小编来为各位介绍php使用floor去掉小数点的例子,希望对各位有帮助。 float floor (...2016-11-25
  • c#实现获取字符串阵列中元素最长或最短的长度

    下面小编就为大家分享一篇c#实现获取字符串阵列中元素最长或最短的长度方法,具有很好的参考价值,希望对大家有所帮助...2020-06-25
  • 纯Css实现下拉菜单的简单例子

    下面我们来看一篇关于纯Css实现下拉菜单的简单例子,希望这篇文章能够给各位同学带来帮助,具体步骤如下. 大家可能会经常用到hover这属性,用hover实现鼠标经过的颜...2017-01-22
  • WPF TextBox实现按字节长度限制输入功能

    这篇文章主要为大家详细介绍了WPF TextBox实现按字节长度限制输入功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
  • php时间日期对比与日期加减例子

    在php中日期对比用得比较多了,还有一个日期加减也用到不少,下面我拿两个例子来给大家介绍在php中日期操作方法吧,希望文章能给你带来帮助 功能需求 文章发布时段操...2016-11-25
  • php更新修改excel中的内容例子

    本例子不是读取Excel或生成新的Excel,而是读取现有的Excel文件,然后修改Excel中的数据,就像修改mysql中数据一样的哦。 代码如下 ...2016-11-25
  • php正则获取文章内容中图片地址例子

    正则提取图片中的地址我们介绍过很多的相关文章了,下面再来给各位介绍一个可以提取内容中第一张图片的例子,希望对各位有帮助。 代码如下 复制代码 ...2016-11-25
  • php获取QQ头像并显示的例子

    最近看到博客留言的头像有点别扭,因为游客的头像都是同一个头像,看着不是很舒服。虽然现在绝大多数的主题集成了Gavatar头像功能,先不说gavatar被墙的问题,我自己现在都没...2016-11-25
  • php判断字符串是否包含另一个字符串例子

    php判断字符串是否包含另一个字符串的实现方法有许多的办法,像我们在网上一搜索可看到大量关于字符是否包含指定字符的方法,下面我把这些实用的例子整理一起与大家分享...2016-11-25
  • PHP date函数获取时间几个例子

    date函数是php中一个非常好用的日期获取函数了,我们可以使用它来获取指定日期或者当前日期了,下面我来简单的介绍一下date函数用法与常用用法吧。 PHP星期几获取代...2016-11-25
  • 详解PHP中字符串长度的截取用法实例

    PHP初学中很多同学搞不清字符串长度的截取用法。小编分享了一篇写得很详细的关于字符串长度截取用法的文章,希望能解答大家的疑问。 本文实例讲述了PHP中字符串长...2017-01-22
  • php高效快速获取图片尺寸的方法

    在 php 获取图片尺寸的方法我们可以使用 getimagesize 获取图片尺寸的效率是很低的,首先需要获取整个的图片信息,然后再进行操作,下面的例子更科学算法更好,我们一起来看...2016-11-25
  • 判断字符长度函数strlen实例教程

    定义和用法 该strlen ( )函数返回的长度字符串。 他的作用是计算字字符长度的,中文一个字为2 语法 strlen(string) ParameterDescriptionstringRequired. Specifie...2016-11-25
  • C语言中求字符串长度的函数的几种实现方法

    这篇文章主要介绍了C语言中求字符串长度的函数的几种实现方法,需要的朋友可以参考下...2020-04-25
  • php获取flv视频时间长度代码

       代码如下 复制代码 function bigendian2int($byte_word, $signed = false) {   $int_value = 0;   $byte_wordlen = str...2016-11-25
  • php数组是否存在指定字符与数组长度检测实例

    本教程只讲了二个地方一个是利用数组函数in_array 检查数组中是否存在指定字符串,与利用count函数来判断数组长度。 定义和用法 in_array() 函数在数组中搜索给定...2016-11-25
  • php 设置cookie路径例子总结

    对于cookie path很多的朋友不以为燃了这样会发现就是因为一个小点或一个路径问题测试了一天发现读取不了cookie值了,今天我就来给大家介绍cookie中路径的一些例子与注...2016-11-25
  • php文件锁类防止并发的例子

    文件锁可以防止文件读写时多人访问时出现共享问题或数据不准确的问题,下面我们来看一篇关于php文件锁类防止并发的例子,具体如下. 工作间隙写了个文件锁的类,用于...2016-11-25
  • PHP 更高效的字符长度判断例子

    在php中测试字符串长度的函数是strlen,但今天我发现使用isset更加的更高效哦,口说不你不相信下面我举两个例子来给各位看看。 学PHP的都了解,在PHP中获取字符串有一...2016-11-25