当前位置:  编程技术>php
本页文章导读:
    ▪模拟SQLSERVER的两个函数:dateadd(),datediff()       <?php//文件名:date.inc.php3//在使用这两个函数前,要先将日期或日期时间转换成timestamp类型。//如://$today=mktime(0,0,0,date("m"),date("d"),date("Y"));/****模拟sqlserver中的dateadd函数*******$part 类型:str.........
    ▪实时抓取YAHOO股票报价的代码       <? function getYahooQuote($stockSymbol = "CCR") { if (!$targetURL) $targetURL = "http://finance.yahoo.com/q?s=$stockSymbol&d=t"; //设定要抓取的URL目标             $fd = fopen("$targetURL", "r");         $stopExtra.........
    ▪挑战最棒的留言本的源码(一)       留言本的使用说明  哈哈,很开心,做了好些时候的留言本总算可以发表了...  阿,希望能大家喜欢,不喜欢也不要紧,但是,一定有不喜欢的理由,,烦请一定告知!!!  谢谢!!!  本留言本从一开始.........

[1]模拟SQLSERVER的两个函数:dateadd(),datediff()
    来源: 互联网  发布时间: 2013-11-30
<?php
//文件名:date.inc.php3
//在使用这两个函数前,要先将日期或日期时间转换成timestamp类型。
//如:
//$today=mktime(0,0,0,date("m"),date("d"),date("Y"));

/****模拟sqlserver中的dateadd函数*******
$part 类型:string
取值范围:year,month,day,hour,min,sec
表示:要增加的日期的哪个部分
$n 类型:数值
表示:要增加多少,根据$part决定增加哪个部分
可为负数
$datetime类型:timestamp
表示:增加的基数
返回 类型:timestamp
**************结束**************/
function dateadd($part,$n,$datetime){
$year=date("Y",$datetime);
$month=date("m",$datetime);
$day=date("d",$datetime);
$hour=date("H",$datetime);
$min=date("i",$datetime);
$sec=date("s",$datetime);
$part=strtolower($part);
$ret=0;
switch ($part) {
case "year":
$year+=$n;
break;
case "month":
$month+=$n;
break;
case "day":
$day+=$n;
break;
case "hour":
$hour+=$n;
break;
case "min":
$min+=$n;
break;
case "sec":
$sec+=$n;
break;
default:
return $ret;
break;
}
$ret=mktime($hour,$min,$sec,$month,$day,$year);
return $ret;
}

/****模拟sqlserver中的datediff函数*******
$part 类型:string
取值范围:year,month,day,hour,min,sec
表示:要增加的日期的哪个部分
$date1,$date2 类型:timestamp
表示:要比较的两个日期
返回 类型:数值
**************结束*(*************/
function datediff($part,$date1,$date2){
//$diff=$date2-$date1;
$year1=date("Y",$date1);
$year2=date("Y",$date2);
$month2=date("m",$date2);
$month1=date("m",$date1);
$day2=date("d",$date2);
$day1=date("d",$date1);
$hour2=date("d",$date2);
$hour1=date("d",$date1);
$min2=date("i",$date2);
$min1=date("i",$date1);
$sec2=date("s",$date2);
$sec1=date("s",$date1);

$part=strtolower($part);
$ret=0;
switch ($part) {
case "year":
$ret=$year2-$year1;
break;
case "month":
$ret=($year2-$year1)*12+$month2-$month1;
break;
case "day":
$ret=(mktime(0,0,0,$month2,$day2,$year2)-mktime(0,0,0,$month1,$day1,$year1))/(3600*24);
break;
case "hour":
$ret=(mktime($hour2,0,0,$month2,$day2,$year2)-mktime($hour1,0,0,$month1,$day1,$year1))/3600;
break;
case "min":
$ret=(mktime($hour2,$min2,0,$month2,$day2,$year2)-mktime($hour1,$min1,0,$month1,$day1,$year1))/60;
break;
case "sec":
$ret=$date2-$date1;
break;
default:
return $ret;
break;
}
return $ret;
}
?>


    
[2]实时抓取YAHOO股票报价的代码
    来源: 互联网  发布时间: 2013-11-30
<?
function getYahooQuote($stockSymbol = "CCR")
{
if (!$targetURL) $targetURL = "http://finance.yahoo.com/q?s=$stockSymbol&d=t"; //设定要抓取的URL目标     
        $fd = fopen("$targetURL", "r");
        $stopExtract = 0;  
        $startExtract = 0;  
        while (!feof($fd))  
        {
            $buffer = fgets($fd, 4096);
                //echo trim($buffer)."\n";  
            if (strstr($buffer, "rowspan=3"))
            {
                //echo "extract started at line #$lineCount\n";  
                $startExtract = 1;  
            }     
            if ($startExtract && !$stopExtract)     
            {

                if (strstr($buffer, "<a"))  
                {
                    $startPos = strrpos($buffer, "<");
                    $buffer = substr($buffer, $startPos);
                }
                //$text = trim(strip_tags($buffer));
                //echo trim($buffer)."\n";  

                $buffer = str_replace("\n\r", " ", "$buffer");
                if (strstr($buffer, "http://ichart.yahoo.com/v?s=$stockSymbol"))  
                {
                    //echo "ichart found!";
                    $stopExtract = 1;  
                }
                $capturedHTML .= $buffer;     

            }
            if ($startExtract && strstr($buffer, "<br>"))
            {
                 $stopExtract = 1;  
                //echo "extract stopped at line #$lineCount\n";          
                echo $capturedHTML;
                break;
            }
            $lineCount++;
        }
        fclose($fd);
    }

    //以下为抓取的一个例子
    $symbols = array('CCR', 'IIXL','SAPE','WBVN' );
    $symbolCount = count($symbols);
    for ($i=0; $i< $symbolCount; $i++)
    {
        echo "$symbols[$i]<br>";
        getYahooQuote("$symbols[$i]");
    }
    ?>



    
[3]挑战最棒的留言本的源码(一)
    来源: 互联网  发布时间: 2013-11-30
留言本的使用说明  


哈哈,很开心,做了好些时候的留言本总算可以发表了...  
阿,希望能大家喜欢,不喜欢也不要紧,但是,一定有不喜欢的理由,,烦请一定告知!!!  
谢谢!!!  

本留言本从一开始的目标就是""挑战最棒的留言本""!!!我想"没有做不到的,只是看有没有必要"!!!  

如果你的建议很好,我一定做到你的要求为止,我的目标:"做一个很棒的程序员".  



此留言本的优点和缺点:  
-------------------------------------------------------------------  
这可能是最重要的了.哈哈!!!  

优点:  

该留言本最大的优点是,换行.实现了用户换行,(保持原形,中国人的同学录的换行是安一定字数的,也就是说不管你的换行,统统都他给你换行.这样要是想贴文本图形的话,就存在问题了.)而现在大部分的留言本都没有实现自动换行,也就是说它不管你一句写多少个字符,它都会在一行显示,这样要是有一个留言没换行的话,留言本就会变的很难看,窗口下面的行条就会好长,,破坏了叶面的美观!!!.  

到今天为止,我还没发现能同时解决这两个问题的留言,这也是我写这留言本的原因所在.  

包括oso的论坛,也是不换行的,不信你去留言试试,写一条很长的不回车的字符,这样它的叶面马上就出现问题了.(我和oso提过这问题,不知道改了没有!)  

我写了个computer_message($msg);的函数解决了这问题,可以看config.php文件中的源玛.  

还有分页:通过两种方式来察看,一是:往前,往后显示留言,另一种是:安页数显示.  

还有现在版主可以方便的通过下面的连接来删除和恢复,当然要输入密码.  

缺点:  

当然有了,要实事求是,就是页面的美化工作做的还不是很够,虽然觉的很必要,但由于时间的关系总觉的这是外面的东西,可以先拖一下,当然只要有一点HTML知识的都可以很方便的修改.  

还有就是未知的BUG了!哈哈!!!  


下载点,和样本在http://little.oso.com.cn中可以找到!!!  


因为说明档是在linux下写的,所以要用写字板打开readme.txt  
不要用记事本,要不然会乱码!!!  

下面是配置说明:
--------------------------------------------------------------------
为了配置的方便,重新整理了代码,现在已经把全部的需要设置的参数都放在
config.php文件里了,配置起来应该很简单,里面有详悉的说明.

目标:在十分种内搞定你的留言本!!!

1:  建立一个数据库(要主页提供数据库空间)

    一般象oso的有phpMyAdmin开放源玛的前端.创建以来很简单的.

    取好名字后,记得把config.php 的$db_name改成这个名字

2:  建立留言表(等下把config.php的$table_name改成这里你起的名字).

    结构为:
    key_liuyan int(11) auto_increment primary key,  //主建,自动增加
    nikename varchar(20) null                       // 昵称
    subject varchar(100) null                       // 留言主题  
    date_created varchar(19)                        // 留言时间
    ip_address varchar(15)                          // 留言人的IP地址  
    message mediumtext null                         // 留言信息
    email_address varchar(50) null                  // 留言人的e-mail地址   
    zhuye_address varchar(50) null                  // 留言人的主页地址
    huifu_biaozi int(1) default 0                   // 版主回复标志
    huifu mediumtext null                           // 版主回复内容
    oicq varchar(20) null                           // 留言人的OICQ号码   

    可以用如下的SQL来完成!!!(本人测试通过,记得把yourtable_name改成好记点的,
    当然不改也行阿)

    create table your_liuyan_table(
    key_liuyan int(11) auto_increment primary key,
    nikename varchar(20) null,
    subject varchar(100) null,
    date_created varchar(19) ,
    ip_address varchar(15),
    message mediumtext null,
    email_address varchar(50) null,
    zhuye_address varchar(50) null,
    huifu_biaozi int(1) default 0 ,
    huifu mediumtext null,
    oicq varchar(20) null  
    )

3:  建立控制表:(同样要把这里起的名字放到config.php的$table_name_control里去)

    结构如下:

    leibie varchar(20) primary key,
    value  varchar(20) null

    也可以用下面的SQL语句:

    create table your_control_table(

     leibie varchar(20) primary key,
     value varchar(20) null
     )

    因为这是你的控制表,所以要自己加入控制记录两条;

    SQL语句为:

    插入删除密码:

    insert into your_control_tble(
    leibie,
    value)
    values
    (delete,'1332');

    插入回复密码:        

    insert into your_control_tble(
    leibie,
    value)
    values
    (huifu,'1332');

    这样放进去的密码为:123,用户名为空!

    怎么计算密码和插入的值的关系呢?

    是这样的,你的密码 ,如123 把三位数上的各位加起来,等于6,然后把6乘以222就是密码值!!!

    6*222=1332.

    知道了这关系,当然你可以改成其它的密码了.

    不过用户名要为空,,,


    这实行的简单加密的原理可以参照主页 http://cxg168.126.com 的三位数.

      
4:  一切完成,然后只要把除了readme.txt外的文件上传就行了.



    如还有什么问题请联系我.


下面是联系我的方法(意见返回):
--------------------------------------------------------------------
?我的留言本:   http://little.oso.com.cn
我的OICQ:     873221
我的e-mail:   cxg168@sohu.com

---------------------------------------------------------------------  


    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3