当前位置:  编程技术>php
本页文章导读:
    ▪用文本文件实现的动态实时发布新闻的程序       动态实时发布新闻的程序,可以根据发布时间,自动地排列显示顺序。新闻文件为存储在指定目录的文本文件组成,当有新闻的时候,程序会自动地将其显示出来,并且排列在页面的最开始.........
    ▪构建简单的Webmail系统       这是一段Web Mail的示范代码,功能不是很强,但是结构还比较完整,主要的功能如查看文件夹,查看信件,回复,写信都有。但是程序中没有考虑附件解读和发送的问题。 (原文在 这里)。仅.........
    ▪如何删除多级目录       昨天看见一个贴子(chinaasp)问怎么删除目录,以前一直可以,但昨天出了问题,原来他只是把他下级的文件删了后就删 目录所以如果多几级就有问题。 我的这个只能暂时凑活着用,如果你的.........

[1]用文本文件实现的动态实时发布新闻的程序
    来源: 互联网  发布时间: 2013-11-30
动态实时发布新闻的程序,可以根据发布时间,自动地排列显示顺序。新闻文件为存储在指定目录的文本文件组成,当有新闻的时候,程序会自动地将其显示出来,并且排列在页面的最开始部分。
<html>
<head>
<title>News</title>
</head>
<body bfcolor="#ffffff">
<h1>News</h1>
<div aligh="center">
<table border="0" cellspacing="5" cellpadding="10" width="90%" bgcolor="#e0e0e0">

<?php

  include('locationfilename.php');

  function createur1($text){
  //新闻的文本文件中这样插入你的链接
  //${http://mysite.ch}
  //或是${http://mysite.ch|My homepage in}
  //开始处理文本文件部分
    $s=$text;
    $a=strstr($s,'${');
    if ($a){
      $b=strstr($a,'}');
      if ($b){
        $la=strlen($a); $ls=strlen($s);
        $s=substr($s,0,$ls-$la);
        $a=substr($a,2);
        $lb=strlen($b); $la=strlen($a);
        $a=substr($a,0,$la-$lb); $b=substr($b,1);
        $ta=strstr($a,"|");
        if($ta){
          $la=strlen($a); $lt=strlen($ta);
          $linktext=substr($a,$la-$lt+1);
          $a=substr($a,0,$la-$lt);
        }
       else{
         $linktext=$a;
       }
      $s=$s."<a href="".$a."">".$linktext."</a>".$b;
      }
    }

  return($s);
  }

  //在这里修改你的新闻文件存放目录
  //切记,新闻文件必须是文本文件
  $newspath="/home/htdocs/test/new/";

  //设置数组
  $newsfile=array();

  //设置目录把柄
  $hd=dir($newspath);

  //获取全部文件,并将其存放在数组中
  while($filename=$hd->read() ){
    $s=strtolower($filename);
    if (strstr($s,".txt")){
      //检测最新修改日期
      $lastchanged=filemtime($newspath.$filename);
      $newsfile[$filename]=$lastchanged;
    }
  }

  //文件排序
  arsort($newsfile);
  //输出文件
  for(reset($newsfile);  $key=key($newsfile);  next($newsfile)){
    $fa=file($newspath.$key);
    $n=count($fa);
    print "<tr><td>n";
    print "<b>".date("d.m.Y - H:i:s",$newsfile[$key])."</b><br>n";
    for($i=0; $i<$n; $i=$i+1){
      $s=chop($fa[$i]);
      $s=htmlspecialchars($s);
      $s=createur1($s);
      print $s."<br>n";
    }
    print "</td></tr>";
  }
  $hd->close();

?>
</body>
</html> 

    
[2]构建简单的Webmail系统
    来源: 互联网  发布时间: 2013-11-30
这是一段Web Mail的示范代码,功能不是很强,但是结构还比较完整,主要的功能如查看文件夹,查看信件,回复,写信都有。但是程序中没有考虑附件解读和发送的问题。 (原文在 这里)。仅推荐给希望了解Webmail编程的网友做个参考。更加完善的Webmail请大家到 这里查找。
请注意:程序中使用了http认证功能,此功能需配合apache服务器使用。




--------------------------------------------------------------------------------
将以下代码分别存为 index.php3, imapfuncs.phl
配置imapfuncs.phl文件中的$M_HOST = "localhost"; $M_MAILSERVER = "transit.fast.no";
然后浏览 index.php3 即可.  
--------------------------------------------------------------------------------
index.php3

<?PHP
/* $Id: index.php3,v 1.3 1999/04/14 12:12:32 borud Exp $ */

/* load the IMAP library functions we\'ve written */
include("imapfuncs.phl");

m_login($m);

?>
<HTML>
<HEAD>
<TITLE><?PHP echo "$M_SYSNAME"; ?></TITLE>
</HEAD>
<BODY bgcolor=#AAAAAA text=#000000 link=#440000 vlink=#440000 alink=#FF00FF>
<H1 ALIGN=CENTER><?PHP echo "$M_SYSNAME"; ?></H1>
<HR SIZE=1 NOSHADE>

<P>
<?PHP
if ($cmd == "delete") {
m_delete($marked, $m);
m_list($m);
}

elseif ($cmd == "display") {
m_display($n, $m);
}

elseif ($cmd == "compose" || $cmd == "reply") {
m_compose($n, $m);
}

elseif ($cmd == "send") {
m_send($to, $subject, $body);
m_list($m);
}

else {
m_list($m);
}
?>

<P>

<HR SIZE=1 NOSHADE>
<?PHP echo "User: $PHP_AUTH_USER"; ?>

</BODY>
</HTML>






--------------------------------------------------------------------------------
imapfuncs.phl

<?PHP /* -*-C++-*- */

/* $Id: imapfuncs.phl,v 1.4 1999/04/14 12:12:32 borud Exp $ */

/* configurable parameters */


$M_HOST = "localhost";
$M_MAILSERVER = "transit.fast.no\";

$M_COLOR_ODD = "#CCCCCC";
$M_COLOR_EVEN = "#EEEEEE";
$M_COLOR_HEAD = "#AAAAFF";
$M_COLOR_BG = "#FFFFFF";


/* globals */
$M_PORT = 143;
$M_SERVICE = "imap";
$M_SYSNAME = "Simple PHP3 IMAP Interface 1.0";
$M_MBOX = "{$M_HOST:$M_PORT/$M_SERVICE}";
$M_REALM = "IMAP Interface";
$MBOX = false;

/* functions */

function m_login ($mailbox = '')
{
global $MBOX, $M_REALM;
global $PHP_AUTH_USER, $PHP_AUTH_PW;

if ($MBOX) {
return true;
}

if (! $PHP_AUTH_USER) {
m_reject($M_REALM);
}

$MBOX = @imap_open(m_mailbox_name($mailbox), $PHP_AUTH_USER, $PHP_AUTH_PW);

if (! $MBOX) {
m_reject($M_REALM);
}

return true;
}


function m_list($mailbox = '')
{
global $MBOX, $PHP_SELF;
global $M_COLOR_ODD, $M_COLOR_EVEN, $M_COLOR_HEAD, $M_COLOR_BG;

/* if not logged into server, do so */
if (! $MBOX) {
if (! m_login($mailbox)) {
return false;
}
}

$num = imap_num_msg($MBOX);

echo "<FORM ACTION=$PHP_SELF TYPE=POST>\n";
echo "<CENTER><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=1 WIDTH=90%>\n";

echo "<TR ALIGN=LEFT BGCOLOR=$M_COLOR_HEAD>";
echo "<TH> </TH><TH>From</TH><TH>Subject</TH><TH>Date</TH>";
echo "</TR>\n";

for ($i=1; $i < ($num+1); $i++) {
$head = imap_header($MBOX, $i, 50, 50, 0);

$from = $head->fetchfrom;
$subj = $head->fetchsubject;
$date = m_date_format($head->date);

$bgcolor = ($i%2 == 0)?$M_COLOR_ODD:$M_COLOR_EVEN;

echo "<TR BGCOLOR=\"$bgcolor\">\n";
echo " <TD><INPUT TYPE=CHECKBOX NAME=marked[] VALUE=$i></TD>\n";
echo " <TD>$from</TD>";
echo "<TD><A href=/index.html"$PHP_SELF?m=$mailbox&n=$i&cmd=display\">$subj</A></TD>";
echo "<TD>$date</TD>\n";
echo "</TR>\n";
}

if ($num <= 0) {
echo "<TR><TD ALIGN=CENTER COLSPAN=4 BGCOLOR=$M_COLOR_BG><BR>";
echo "<FONT SIZE=+1 COLOR=#FF0000>No messages in mailbox</FONT>";
echo "<BR><BR></TD></TR>\n";
}

echo "<TR BGCOLOR=$M_COLOR_HEAD><TD COLSPAN=4>";
echo "<INPUT TYPE=submit NAME=cmd VALUE=delete>";
echo "<INPUT TYPE=submit NAME=cmd VALUE=compose>";
echo "<INPUT TYPE=submit NAME=cmd VALUE=refresh>";
echo "</TD></TR>\n";

echo "</TABLE></CENTER>\n";
echo "</FORM>\n";

return true;
}


function m_display($msgno, $mailbox = '')
{
global $MBOX, $M_COLOR_HEAD, $M_COLOR_BG;
global $PHP_SELF;

if (! $MBOX) {
if (! m_login($mailbox)) {
return false;
}
}

$struc = imap_fetchstructure($MBOX, $msgno);
if (! $struc) {
return false;
}

$head = imap_header($MBOX, $msgno, 50, 50, 0);

$from = $head->fromaddress;
$subj = $head->subject;
$date = $head->date;
$body = htmlentities(imap_body($MBOX, $msgno));

echo "<CENTER>\n";
echo "<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=10 WIDTH=100%>\n";
echo "<TR BGCOLOR=$M_COLOR_HEAD><TH>Message #$msgno: $from / $subj</TH></TR>\n";
echo "<TR BGCOLOR=$M_COLOR_BG><TD><PRE>\n";
echo "From: $from\n";
echo "Subject: $subj\n";
echo "Date: $date\n";
echo "<HR SIZE=2 NOSHADE>\n";
echo "$body\n";
echo "</PRE></TD></TR>\n";
echo "<TR BGCOLOR=$M_COLOR_HEAD><TD>";

echo "<FORM ACTION=$PHP_SELF METHOD=POST>";
echo "<INPUT TYPE=HIDDEN NAME=m VALUE=$mailbox>\n";
echo "<INPUT TYPE=HIDDEN NAME=n VALUE=$msgno>\n";
echo "<INPUT TYPE=HIDDEN NAME=marked[] VALUE=$msgno>\n";
echo "<INPUT TYPE=SUBMIT NAME=cmd VALUE=back>";
echo "<INPUT TYPE=SUBMIT NAME=cmd VALUE=reply>";
echo "     <INPUT TYPE=SUBMIT NAME=cmd VALUE=delete>";

echo "</TD></TR>\n";
echo "</TABLE>\n";
echo "</CENTER>\n";

return true;
}

function m_delete ($msgno, $mailbox='')
{
global $MBOX;

if (is_array($msgno)) {
while (list($dummy, $num) = each($msgno)) {
imap_delete($MBOX, $num);
}
imap_expunge($MBOX);
} else {
return false;
}

return true;
}

function m_compose ($msgno='', $mailbox='')
{
global $MBOX, $M_COLOR_HEAD, $M_COLOR_BG;
global $PHP_SELF, $PHP_AUTH_USER, $M_MAILSERVER;

if ($msgno != '') {
$head = imap_header($MBOX, $msgno, 150, 150, 0);
$to = $head->fromaddress;
$subject = "Re: " . $head->subject;
$body = "$to wrote:\n";
$body .= ereg_replace("\n","\n>", "\n" . imap_body($MBOX, $msgno));
} else {
$to = "";
$subject = "";
$body = "";
}

echo "<CENTER>\n";
echo "<FORM METHOD=POST ACTION=\"$PHP_SELF\">\n";
echo "<TABLE BORDER=0 CELLPADDING=5 CELLSPACING=0>\n";
echo "<TR bgcolor=$M_COLOR_HEAD><TD ALIGN=RIGHT>To:</TD>";
echo "<TD><INPUT TYPE=TEXT NAME=to value=\"$to\" SIZE=50></TD></TR>\n";

echo "<TR bgcolor=$M_COLOR_HEAD><TD ALIGN=RIGHT>Subject:</TD>";
echo "<TD><INPUT TYPE=TEXT NAME=subject value=\"$subject\" SIZE=50></TD></TR>\n";

echo "<TR bgcolor=$M_COLOR_BG><TD COLSPAN=2>";
echo "<TEXTAREA COLS=76 ROWS=10 NAME=body WRAP=hard>$body</TEXTAREA>"; 

    
[3]如何删除多级目录
    来源: 互联网  发布时间: 2013-11-30
昨天看见一个贴子(chinaasp)问怎么删除目录,以前一直可以,但昨天出了问题,原来他只是把他下级的文件删了后就删

目录所以如果多几级就有问题。

我的这个只能暂时凑活着用,如果你的目录没有十几层的话应该没有问题的吧~,但我不熟悉递归只能做到

deltree($path);rmdir($path)才能删除这个目录能不能做到直接deltree($path);就删除这个目录??

function deltree($pathdir)
{
echo $pathdir;//我调试时用的

if(is_empty_dir($pathdir))//如果是空的
    {
    rmdir($pathdir);//直接删除
    }
    else
    {//否则读这个目录,除了.和..外
        $d=dir($pathdir);
        while($a=$d->read())
        {
        if(is_file($pathdir.'/'.$a) && ($a!='.') && ($a!='..')){unlink($pathdir.'/'.$a);}
        //如果是文件就直接删除
        if(is_dir($pathdir.'/'.$a) && ($a!='.') && ($a!='..'))
        {//如果是目录
            if(!is_empty_dir($pathdir.'/'.$a))//是否为空
            {//如果不是,调用自身,不过是原来的路径+他下级的目录名
            deltree($pathdir.'/'.$a);
            }
            if(is_empty_dir($pathdir.'/'.$a))
            {//如果是空就直接删除
            rmdir($pathdir.'/'.$a);
            }
        }
        }
        $d->close();

    echo "必须先删除目录下的所有文件";//我调试时用的

    }

}

function is_empty_dir($pathdir)
{//判断目录是否为空,我的方法不是很好吧?只是看除了.和..之外有其他东西不是为空,PHP有没有给出什么

函数?
$d=opendir($pathdir);
$i=0;
    while($a=readdir($d))
    {
    $i++;
    }
closedir($d);
if($i>2){return false;}
else return true;
}  


    
最新技术文章:
▪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