jiayi Rss

自制sitemap生成器

Posted by jiayi | Posted in web | Posted on 31-08-2008

0

回到学校便与无聊的小学期为伍…今天没啥事,想到自己的sitemap很久没有更新,于是用php写了个sitemap生成器。
这个程序不是去抓网页的连接…jiayi只想提交主页和文章,所以直接从数据库取数据…有偷懒之嫌(怎么抓连接俺还不会…)
Google抓取分析,一切正常。下面贴下代码

CODE

<?php
    /**
    * @Author:Sanding,http://www.jiayii.com
    * @copyright (c) Sanding 2008
    * @license http://opensource.org/licenses/gpl-license.php GNU Public Licens
    **/

    require("config.php");

    $forbid_cats=array("扯dan","IT新闻"); //不被爬到的分类
    $art_priority=0.8;                  //文章优先级,小于1.0   
    $local_time=date("Y-m-dTH:i:s")."+00:00";
    $frequency="weekly";                //更新频率 always || hourly || daily || weekly || monthly || yearly || never

    $head_text=‘<?xml version="1.0" encoding="UTF-8"?>
<urlset
    xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
    http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
    <!– created by Sanding,http://www.jiayii.com –>

    <url>
        <loc>http://www.jiayii.com</loc>
        <priority>1.0</priority>
        <lastmod>’.$local_time.‘</lastmod>
        <changefreq>weekly</changefreq>
    </url>’
."n";                      
   

CODE

$footer_text=‘</urlset>’;          
    $middle_text="";                   

    /****************sitemap生成***************/
  

CODE

if(($fh=fopen("rss/jiayi_sitemap.xml","wt+")) && chmod("rss/jiayi_sitemap.xml",0755))
    {
        mysql_pconnect($dbhost,$dbuser,$dbpasswd);
        mysql_query("SET NAMES ‘utf8′");
        mysql_select_db("$dbname");

        $query="SELECT id,en_title FROM article WHERE";     //Edit it
        $and=" ";
        for($i=0;$i<count($forbid_cats);$i++)
        {
            $query.=$and."cat != ‘".$forbid_cats[$i]."’";       //去掉无聊的分类
            $and=" AND ";
        }
        $query.=" ORDER BY pubtime DESC";

        $result=mysql_query($query);
        while($row=mysql_fetch_row($result))
        {
            $middle_text.=" <url>
    <loc>http://"
.$_SERVER['HTTP_HOST']."/showart/".$row[1]."-".$row[0]."</loc>   //文章网址
    <priority>".$art_priority."</priority>
    <lastmod>"
.$local_time."</lastmod>
    <changefreq>"
.$frequency."</changefreq>
</url>n"
;
        }

        $contents=$head_text.$middle_text.$footer_text;
        if(!fwrite($fh,$contents))
            echo "<script type=’text/javascript’>alert(’sitemap创建失败’);</script>";
    }  
    else
        echo "<script type=’text/javascript’>alert(’sitemap创建失败’);</script>";
?>

注释之处改为自己的设置

每次发表文章时执行一下就可以了~

通过PHP上传大文件

Posted by jiayi | Posted in web | Posted on 20-08-2008

0

因为需要上传视频,ISO镜像这些大文件,着实考验了一番PHP http的上传能力…结果,PHP&Apache不负众望,经过一番卓绝的配置后,传个六七百M的文件不成问题

配置php.ini:
找到
;;;;;;;;;;;;;;;;           
; File Uploads ;
;;;;;;;;;;;;;;;;
区域,设置
file_uploads  =  on  ; #默认为开
upload_max_filesize  =  8506M  ; #上传大小上限。改的大大的…

;;;;;;;;;;;;;;;;;
; Data Handling ;
;;;;;;;;;;;;;;;;;
区域设置
post_max_size = 4566M ; #通过表单POST给PHP的所能接收的最大值,改的大大的…

;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;
区域设置
max_execution_time = 30000000000 ; #每个php脚本的最大执行时间,秒。改的大大的…
max_input_time = 600000000  ;             #传送请求数据的最大时间,秒。改的大大的…
memory_limit = 5000M ;                           #一个脚本占用内存的上限。改的大大的…

好了,php的配置搞定,按照一般的说法,此时就可以上传大文件了,但还是超时Orz……继续求索,介个事原来跟Apache还有瓜葛

配置Apache
openSUSE中,修改/etc/apache2/sysconfig.d/global.conf文件
Timeout 300000000000 #apache响应时间的上限。改的大大的…

其他系统,找到相应的配置文件修改,一般在httpd.ini中。

大功告成,尽情在本机上传百M的文件吧。Luck~