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) { |
获取到一个短连接,需要将短连接转换成真实的网址,通过查资料,发现 PHP 提供了一个函数 get_headers() ,可以完成这个任务,先把 头部信息获取到,然后再分析跳转地址即可
利用get_headers() 函数获取http头
php 自带的get_headers()取得服务器响应一个 HTTP 请求所发送的所有标头。 获取301状态肯定没问题。
例子
代码如下 | 复制代码 |
$url = 'http://t.cn/h5mwx'; print_r($headers); //输出跳转到的网址 附: Array [Server] => Array [Content-Length] => Array [Date] => Array [X-Varnish] => 2893360335 |
好了我们看一个获取短网址跳转之前的网址
代码如下 | 复制代码 |
$header = get_headers($url, 1); |
学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 |
在网上找了这方面的教程 但是基本就是没有人说什么 然后在某一天看见一个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){
|
这个是获取父的留言内容的代码
代码如下 | 复制代码 |
|
证 用户是否登陆 并给予留言权限
代码如下 | 复制代码 |
<form id="form1" name="form1" method="post" action="<?php echo site_url()."/publish/user_message"?>"> |
这个是显示了 获取指定的父id 之后来显示他里面的全部子id 和留言内容
代码如下 | 复制代码 |
<p>这里是<?php echo $is;?>楼 用户:<?php echo $sel->receiver_author;?> <br />留言内容:<?php echo $sel->content?> <a onClick="showdiv('contentid<?php echo $is;?>','showtext<?php echo $is;?>')" href="javascript:void(0)">回复</a> } else {
|
这个是实现之后的效果图片 留言板已经实现了 留言内容回复
然后这个是实现了 回复你的时候 会显示你有一条新的留言
保存数据到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 mysql_select_db("my_db", $con); mysql_query("INSERT INTO Persons (FirstName, LastName, Age) mysql_query("INSERT INTO Persons (FirstName, LastName, Age) mysql_close($con); |
例子
代码如下 | 复制代码 |
<?php |
一聚教程小编提醒你,保存数据时我们要注意页面之间的编码以免出现不必要的麻烦了,还有就是数据类型与我们提交的数据要一致否则数据是保存不成功的哦。
相关文章
php错误提示 open_basedir restriction in effect 解决
今天在帮助一个朋友配置一台服务器时发现网站配置好了缓存目录读写不成功,在打开错误时发现提示 Warning: file_exists() [function.file-exists]: open_basedir restr...2016-11-25- Foreach 函数(PHP4/PHP5)foreach 语法结构提供了遍历数组的简单方式。foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息。...2013-09-28
浅谈Java8 的foreach跳出循环break/return
这篇文章主要介绍了Java8 的foreach跳出循环break/return,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-07-28JavaScript中的数组遍历forEach()与map()方法以及兼容写法介绍
下面小编就为大家带来一篇JavaScript中的数组遍历forEach()与map()方法以及兼容写法介绍。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-05-20mybatis-plus mapper中foreach循环操作代码详解(新增或修改)
这篇文章主要介绍了mybatis-plus mapper中foreach循环操作代码详解(新增或修改),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-11-17- 这篇文章主要介绍了Nodejs 数组的队列以及forEach的应用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-25
- 这篇文章主要介绍了Xml中使用foreach遍历对象实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-12-04
- 这篇文章主要介绍了C#使用foreach语句遍历二维数组的方法,实例分析了C#遍历数组的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
解决mybatis使用foreach批量insert异常的问题
这篇文章主要介绍了解决mybatis使用foreach批量insert异常的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-01-09Notice:undefined index ..错误提示解决方法
这句是在php开发中会碰的一些问题,看这提示我们都知道是变量未定义,那么下面来解决Notice:undefined index方法, 一,这个因为是变量未定义我们只要找到相关的位置加...2016-11-25- foreach()有两种用法 1: foreach(array as $value) { 表达式; } 这里的array是你要遍历的数组名,每次循环中,array数组的当前元素的值被赋给$value,...2016-11-25
- 这篇文章主要介绍了C#如何检查foreach判读其是否为null,文中给出了示例代码,介绍的很详细,需要的朋友可以参考下方法...2020-06-25
- 这篇文章主要介绍了C#使用foreach语句遍历集合类型的方法,可实现通过foreach语句遍历集合类的功能,需要的朋友可以参考下...2020-06-25
php CURLOPT错误Warning: curl_setopt() [function.curl-setopt]:...
在我们使用php curl函数时提示Warning: curl_setopt() [function.curl-setopt]: CURLOPT_FOLLOWLOCATION cannot be activated when in safe_mode or an open_basedir...2016-11-25- PHP7新特性foreach与前版本稍一些改变了,那么在PHP7新特性foreach到底作了什么改变呢,我们下面一起来看看PHP7新特性foreach 修改使用例子,希望文章能够帮助到大家。...2016-11-25
php错误提示:Call-time pass-by-reference has been deprecated
今天在写引用时突然出现了Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, mo...2016-11-25- 在php 中for循环与foreach是常用的两个函数,for是用于数字较多,而foreach一般用于数组遍历中。 代码如下 复制代码 //php当前循环为1,循环由...2016-11-25
- 这篇文章主要介绍了C#中foreach原理以及模拟的实现方法,备有详尽的注释,便于深入理解C#原理,需要的朋友可以参考下...2020-06-25
- Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in F:\myweb\lzlj\cn.php on line 23 问题是你的mysql_query()时的sql出现...2016-11-25
- 这篇文章主要给大家介绍了关于C#从foreach语句中枚举元素看数组的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。...2020-06-25