php能实现记录功能的php代码这样一个功能吗

php实现一个日志功能
原创
 11:12:20
353
这次给大家带来php实现一个日志功能,php实现日志功能的有哪些,下面就是实战案例,一起来看一下。这次给大家带来php实现一个日志功能,php实现日志功能的注意事项有哪些,下面就是实战案例,一起来看一下。我们要写一个写日志的函数,首先需要了解需求,我们一般怎么用日志函数呢?例如,程序执行到某一步,我希望把这个变量(地址)$user_address的值打印到日志,我们希望日志里是这么写的:`xx-xx-xx xx:xx $user_address : 上海市杨浦区xxxxx然后每一条日志都要换行,都有日期时间,假设 函数名称是log();我们希望这么调用他 log(‘useraddress:user_address);那如果$user_address 是一个数组,我想把一个数组的全都都输出到日志中,该怎么办呢?有一个函数是print_r($arg,true),第二个参数表示不直接输出,而是输出的结果作为返回值.我们知道他的输出结果为一段.log函数可以这么写log(){$args= func_get_args();//获得传入的所有参数的数组$numargs= func_num_args();//参数的个数if($numargs==0) {$log=&&;
} elseif ($numargs==1) {$log=$args[0];
}else{$format=
array_shift
($args);//分割掉函数第一个元素,并且做返回值返回,'$user_address:%s'$log=
($format,$args);//把参数代入$format中,}$log=date(&[Y/m/d H:i:s] &) .$log. PHP_EOL;//加上时间$file='/usr/share/nginx/html/log.log'$fp=fopen($file,'a');fwrite($fp,$log);fclose($fp);
}用法: 1.打印一般变量$a, log('得到了$a的值:%s',$a );2 . 打印一个数组$arrlog('%s',print_r($arr,true));可以对上面的函数进行改进下functionlog2($arg){$log= vsprintf('%s', print_r($arg,true));$log= date('[Y/m/d H:i:s]') .'---'.$log. PHP_EOL;$path= dirname(FILE) .'/log.log'$fp=
file_put_contents
($path,$log, FILE_APPEND); }$a=[1,23,45,45]; log2($a);相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!推荐阅读:以上就是php实现一个日志功能的详细内容,更多请关注php中文网其它相关文章!
江湖传言:PHP是世界上最好的编程语言。真的是这样吗?这个梗究竟是从哪来的?学会本课程,你就会明白了。
PHP中文网出品的PHP入门系统教学视频,完全从初学者的角度出发,绝不玩虚的,一切以实用、有用...
点击数(112493)
ThinkPHP是国内最流行的中文PHP开发框架,也是您Web项目的最佳选择。《php.cn独孤九贱(5)-ThinkPHP5视频教程》课程以ThinkPHP5最新版本为例,从最基本的框架常识开始,将...
点击数(110728)
《php.cn原创html5视频教程》课程特色:php中文网原创幽默段子系列课程,以恶搞,段子为主题风格的php视频教程!轻松的教学风格,简短的教学模式,让同学们在不知不觉中,学会了HTML知识。
点击数(84923)
本套教程,以一个真实的学校教学管理系统为案例,手把手教会您如何在一张白纸上,从零开始,一步一步的用ThinkPHP5框架快速开发出一个商业项目。
点击数(84082)
所有计算机语言的学习都要从基础开始,《PHP入门视频教程之一周学会PHP》不仅是PHP的基础部分更主要的是PHP语言的核心技术,是学习PHP必须掌握的内容,任何PHP项目的实现都离不开这部分的内容,通...
点击数(81353)
php中世界最好的语言
全栈工程师
文章总浏览数
相关视频章节Hi,亲爱的小伙伴!
欢迎来到php1.cn社区!
Tools Online | 在线开发工具
RankList | 热门文章
扫码关注 PHP1 官方微信号
Recommend | 推荐阅读
PHP1.CN | 中国最专业的PHP中文社区 |
Copyright (C) 1998 - 2020 PHP1.CN. All Rights Reserved
PHP1.CN 第一PHP社区PHP简单实现上一页下一页功能示例
&更新时间:日 16:07:06 & 作者:懒人
这篇文章主要介绍了PHP简单实现上一页下一页功能,结合实例形式较为详细的分析了php实现上一页下一页功能的原理与具体实现技巧,需要的朋友可以参考下
本文实例讲述了PHP简单实现上一页下一页功能。分享给大家供大家参考,具体如下:
现在好多人用id的增1和减1实现上一篇和下一篇,但是难道文章ID不会断了吗?所以你要知道上个ID和个ID是多少就OK了。
那怎么解决这个问题呢,很简单!
假如这篇文章的ID200
&a href="?action=up&id=200"&上一篇&/a&
&a href="?action=down&id=200"&下一篇&/a&
如果是实现上一篇就在action=up页面写函数
$id= $_GET['id'];
//上一篇:
$sql= select * from article where id & '.$id.' order by id desc limit 0,1';
$rs= mysql_query($sql);
$row= mysql_fetch_array ($rs);
//下一篇:
$sql= select * from article where id & '.$id.' order by id asc limit 0,1';
$rs= mysql_query($sql);
$row= mysql_fetch_array ($rs);
原理,查询比当前ID小(where id & '.$id.'上一篇)和比当前ID大(where id & '.$id.'下一篇)的1条(limit 0,1)数据,并按降序(desc,上一篇)和升序(asc,下一篇)显示出来,当只取一篇的时候,可以省略降序或升序。
具体实现代码:注需要传递参数
前台在上一篇,下一篇处调用:
echo GetPreNext(pre,news,$_REQUEST[catid],$_REQUEST[id]);?&
//显示上一篇下一篇
function GetPreNext($gtype,$table,$catid,$id){
$preR=mysql_fetch_array(mysql_query("select * from ".$table." where catid=".$catid." and id&$id order by id desc limit 0,1"));//id比传入id小的最近一条
$nextR=mysql_fetch_array(mysql_query("select * from ".$table." where catid=".$catid." and id&$id order by id asc limit 0,1"));//id比传入id大的最近一条
$next = (is_array($nextR) ? " where id={$nextR['id']} " : ' where 1&2 ');
$pre = (is_array($preR) ? " where id={$preR['id']} " : ' where 1&2 ');
$query = "Select * from ".$table." ";
$nextRow =mysql_query($query.$next);
$preRow = mysql_query($query.$pre);
if($PreNext=mysql_fetch_array($preRow))
echo $PreNext['pre'] = "上一篇:&a href='newsshow.php?id=".$preR['id']."&&catid=".$catid."'&".$PreNext['title']."&/a& ";
echo $PreNext['pre'] = "上一篇:没有了 ";
if($PreNext=mysql_fetch_array($nextRow))
echo $PreNext['next'] = "下一篇:&a href='newsshow.php?id=".$nextR['id']."&&catid=".$catid."'&".$PreNext['title']."&/a& ";
echo $PreNext['next'] = "下一篇:没有了 ";
代码经测试可用
更多关于PHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》、《》、《》、《》及《》
希望本文所述对大家PHP程序设计有所帮助。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具PHP实现一个简单url路由功能实例
&更新时间:日 16:37:32 & 作者:meteoric_cry
这篇文章主要介绍了PHP实现一个简单url路由功能实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
什么是php的路由机制
1、路由机制就是把某一个特定形式的URL结构中提炼出来系统对应的参数。举个例子,如:& 其中:/article/1& -& ?_m=article&id=1。
2、然后将拥有对应参数的URL转换成特定形式的URL结构,是上面的过程的逆向过程。
如果一个页面的内容呈现,需要根据url上传递的参数来进行渲染。很多时候可能是这样子写:xxx.com/xx?c=x&m=x&t=..,而我们看到的url往往是这样子的(以新浪微游戏的咖啡恋人为例) game.weibo.com/ilovecoffee….这种URL设计看上去比前一种更好一点:)
如果我们访问一下不存在的游戏应用,例如game.weibo.com/ilovecoffee222,则会输出如下的错误提示:
game.weibo.com后面匹配到的项,指向了某个php页面,然后根据参数获取要访问的游戏应用标识,后数据库或者缓存里查询该应用标识,如果不存在则输出错误提示,如果应用存在则加载游戏应用链接地址。
&现在写一个php例子,假设我的ip为192.168.0.33,我加了一层名为router的路径,之后跟随的是 “/模块名/方法名/参数1的key/参数1的value/….”
类似这样的地址:
192.168.0.33/router/Hello/router/a/b/c/d/abc/index.html?id=3&url=http:………………
也就是要调用Ha这个模块中的router方法,并传入url后面的参数/a/b/c/d/index………….
&第一步,首先要在服务器的配置上对/router/路径进行拦截
调用某个文件夹目录下的index.php页面,假定现在所有模块使用单独的文件存放于class目录下,该目录与router平级,如下图所示:
第二步,路由分发器的实现(index.php)
&!Doctype html&
&title&路由测试~~&/title&
&meta http-equiv="content-type" content="text/ charset=utf-8" /&
date_default_timezone_set("Asia/Shanghai");
define("MODULE_DIR", "../class/");
$_DocumentPath = $_SERVER['DOCUMENT_ROOT'];
$_FilePath = __FILE__;
$_RequestUri = $_SERVER['REQUEST_URI'];
$_AppPath = str_replace($_DocumentPath, '', $_FilePath);
//==&\router\index.php
$_UrlPath = $_RequestU
//==&/router/hello/router/a/b/c/d/abc/index.html?id=3&url=http:
$_AppPathArr = explode(DIRECTORY_SEPARATOR, $_AppPath);
* http://192.168.0.33/router/hello/router/a/b/c/d/abc/index.html?id=3&url=http:
* /hello/router/a/b/c/d/abc/index.html?id=3&url=http:
for ($i = 0; $i & count($_AppPathArr); $i++) {
$p = $_AppPathArr[$i];
$_UrlPath = preg_replace('/^\/'.$p.'\//', '/', $_UrlPath, 1);
$_UrlPath = preg_replace('/^\//', '', $_UrlPath, 1);
$_AppPathArr = explode("/", $_UrlPath);
$_AppPathArr_Count = count($_AppPathArr);
$arr_url = array(
'controller' =& 'index',
'method' =& 'index',
'parms' =& array()
$arr_url['controller'] = $_AppPathArr[0];
$arr_url['method'] = $_AppPathArr[1];
if ($_AppPathArr_Count & 2 and $_AppPathArr_Count % 2 != 0) {
die('参数错误');
for ($i = 2; $i & $_AppPathArr_C $i += 2) {
$arr_temp_hash = array(strtolower($_AppPathArr[$i])=&$_AppPathArr[$i + 1]);
$arr_url['parms'] = array_merge($arr_url['parms'], $arr_temp_hash);
$module_name = $arr_url['controller'];
$module_file = MODULE_DIR.$module_name.'.class.php';
$method_name = $arr_url['method'];
if (file_exists($module_file)) {
include $module_
$obj_module = new $module_name();
if (!method_exists($obj_module, $method_name)) {
die("要调用的方法不存在");
if (is_callable(array($obj_module, $method_name))) {
$obj_module -& $method_name($module_name, $arr_url['parms']);
$obj_module -& printResult();
die("定义的模块不存在");
&获取请求的uri,然后拿到要加载的模块名、调用方法名,对uri参数进行简单的判断..
第三步,模块的编写
根据上述的uri,我们要调用的是Hello模块下的router方法,那么可以在class目录下定义一个名为Hello.class.php的文件(注意linux下是区分大小写的)
class Hello {
private $_
private $_varV
function __construct() {
function router() {
$this-&_name = func_get_arg(0);
$this-&_varValue = func_get_arg(1);
function printResult() {
echo $this-&_
echo "&p&";
echo var_dump($this-&_varValue);
echo "&/p&";
同理,我们可以编写Ha模块..
这算是实现了很简单的url路由分发功能了…
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具分页效果在网页中是常见的,可是怎样才能实现分页呢,今天做了两种方法来实现一下分页的效果
首先,我们需要准备在数据库里面准备一个表,并且插入数据,这些都是必需的前提工作了,不多说,如图所示(库名为jereh,表名为n_content):
步骤分析:
我们需要分页的话,需要用到 &"select * from tableName limit &num1,num2&;这是一个限定查询的语句,后面跟两个参数,num1为从第几个开始查找,num2为查找的信息的个数,如我想查找2,3,4这三条数据,如下图所示
好了,我们开始说步骤:
1.建立一个函数,用来实现限制查询的功能
首先我们来想一下,实现这个功能我们首先要知道当前的页数和要限制的一个页面显示几条信息,这个可以用形参传过来,那么,
我们设置pageNum为页数,pageSize为一个页面显示几条数据,在&"select * from tableName limit &num1,num2&这个查询语句中,
num1就是(pageNum-1)*pageSize,num2就是pageSize,明白了这个关系之后,那么就好办了,代码在下面
//分页的函数
function news($pageNum = 1, $pageSize = 3)
$array = array();
$coon = mysqli_connect("localhost", "root");
mysqli_select_db($coon, "jereh");
mysqli_set_charset($coon, "utf8");
// limit为约束显示多少条信息,后面有两个参数,第一个为从第几个开始,第二个为长度
$rs = "select * from n_content limit " . (($pageNum - 1) * $pageSize) . "," . $pageS
$r = mysqli_query($coon, $rs);
while ($obj = mysqli_fetch_object($r)) {
$array[] = $
mysqli_close($coon,"jereh");
上面的代码中,值得注意的是,limit后面一定要加一个空格,不然会出错误;
2.建立第二个函数,用来显示总页数的函数
这个没什么新的知识点,都是以前写过的知识点了,直接看代码吧
//显示总页数的函数
function allNews()
$coon = mysqli_connect("localhost", "root");
mysqli_select_db($coon, "jereh");
mysqli_set_charset($coon, "utf8");
$rs = "select count(*) num from n_content"; //可以显示出总页数
$r = mysqli_query($coon, $rs);
$obj = mysqli_fetch_object($r);
mysqli_close($coon,"jereh");
return $obj-&
3.调用这两个函数,进行初步的处理
我们想做下一页下一页的结果,需要用到get方法在本页面传数据,那么我们在刷新页面的时候,肯定get是得不到数据的,所以需要用三目运算了,看代码了
@$allNum = allNews();
@$pageSize = 3; //约定每页显示的信息条数
@$pageNum = empty($_GET["pageNum"])?1:$_GET["pageNum"];
@$endPage = ceil($allNum/$pageSize); //总页数
@$array = news($pageNum,$pageSize);
4.在页面进行显示
在页面显示的话,需要用到了foreach循环了,代码简单,看下面
&table border="1" style="text-align: center" cellpadding="0"&
&td&编号&/td&
&td&新闻标题&/td&
&td&来源&/td&
&td&点击率&/td&
&td&发布日期&/td&
foreach($array as $key=&$values){
echo "&tr&";
echo "&td&{$values-&id}&/td&";
echo "&td&{$values-&title}&/td&";
echo "&td&{$values-&src}&/td&";
echo "&td&{$values-&indexs}&/td&";
echo "&td&{$values-&times}&/td&";
echo "&/tr&";
5.实现上一页,下一页的效果
要实现页面跳转的效果,我们需要用到了a标签的href属性,地址写&?pageNum = ...&这个pageNum是我们自己定义的,由于是get来传递的,在上一步里面我们已经用$_GET接受了参数,所以我们只需要进行get的参数传递就可以了;
首页:&pageNum=1&;
上一页:"pageNum=&?php echo $pageNum==1?1:$pageNum-1?&"
下一页:"pageNum=&?php echo $pageNum==$endPage&?$endPage&:$pageNum+1?&"
尾页:&pageNum=&?php echo $pageNum =$endPage?&&;
特别注意的是,&pageNum=&的时候后面千万千万不要空格,代码如下
&a href="?pageNum=1"&首页&/a&
&a href="?pageNum=&?php echo $pageNum==1?1:($pageNum-1)?&"&上一页&/a&
&a href="?pageNum=&?php echo $pageNum==$endPage?$endPage:($pageNum+1)?&"&下一页&/a&
&a href="?pageNum=&?php echo $endPage?&"&尾页&/a&
总的代码如下:
&!DOCTYPE html&
&html lang="en"&
&meta charset="UTF-8"&
&title&分页&/title&
//分页的函数
function news($pageNum = 1, $pageSize = 3)
$array = array();
$coon = mysqli_connect("localhost", "root");
mysqli_select_db($coon, "jereh");
mysqli_set_charset($coon, "utf8");
// limit为约束显示多少条信息,后面有两个参数,第一个为从第几个开始,第二个为长度
$rs = "select * from n_content limit " . (($pageNum - 1) * $pageSize) . "," . $pageS
$r = mysqli_query($coon, $rs);
while ($obj = mysqli_fetch_object($r)) {
$array[] = $
mysqli_close($coon,"jereh");
//显示总页数的函数
function allNews()
$coon = mysqli_connect("localhost", "root");
mysqli_select_db($coon, "jereh");
mysqli_set_charset($coon, "utf8");
$rs = "select count(*) num from n_content"; //可以显示出总页数
$r = mysqli_query($coon, $rs);
$obj = mysqli_fetch_object($r);
mysqli_close($coon,"jereh");
return $obj-&
@$allNum = allNews();
@$pageSize = 3; //约定没页显示几条信息
@$pageNum = empty($_GET["pageNum"])?1:$_GET["pageNum"];
@$endPage = ceil($allNum/$pageSize); //总页数
@$array = news($pageNum,$pageSize);
&table border="1" style="text-align: center" cellpadding="0"&
&td&编号&/td&
&td&新闻标题&/td&
&td&来源&/td&
&td&点击率&/td&
&td&发布日期&/td&
foreach($array as $key=&$values){
echo "&tr&";
echo "&td&{$values-&id}&/td&";
echo "&td&{$values-&title}&/td&";
echo "&td&{$values-&src}&/td&";
echo "&td&{$values-&indexs}&/td&";
echo "&td&{$values-&times}&/td&";
echo "&/tr&";
&a href="?pageNum=1"&首页&/a&
&a href="?pageNum=&?php echo $pageNum==1?1:($pageNum-1)?&"&上一页&/a&
&a href="?pageNum=&?php echo $pageNum==$endPage?$endPage:($pageNum+1)?&"&下一页&/a&
&a href="?pageNum=&?php echo $endPage?&"&尾页&/a&
效果如下:
阅读(...) 评论()

我要回帖

更多关于 php实现我的足迹功能 的文章

 

随机推荐