Browsing articles tagged with " 程式相關"
十二月
12
2007

ShitNews 原始碼大公開

前幾天我剛跟大家介紹過凱大人寫的ShitNews網站
沒想到隔沒幾天,凱大人就將ShitNews的原始碼大公開分享給大家.想要藉由已經開發好的程式來學習PHP的朋友們手腳要快喔.

以下文章原文發表於ShitNews的開發日誌,
經過凱大人授權同意後全文轉貼.

ShitNews 原始碼釋出

現在網站很流行釋出原始碼。

ShitNews 身為新穎的潮流下的網站,當然也不能忽略這件事情。
事實是一開始就有要釋出的打算,所以事前也有稍微準備一下。

這次先將目前的程式碼打包一份,資料表的結構也在裡面。
以後有空再去找 Google code 的空間來放好了….

下載位置:
http://www.shitnews.cc/files/shitnews.tgz

安裝注意事項:
本程式需求 php5,且請先安裝好 CakePHP 1.1。

解壓縮後會得到一個 shitnews 的目錄,這個就是程式目錄,直接放在解開的 cakephp 下面即可。
資料庫 Schema 在 shitnews/config/sql/shitnews.sql 這個檔案。
請先設定好 shitnews/config/database.php 內的資料庫連線位置。

若是要用比較安全的設定架構的話,請參考 CakePHP 安裝中的進階篇,將 core lib ,應用程式目錄, webroot 目錄分開與設定 index.php ,.htaccess 等.

另 外推薦一下 CakePHP , CakePHP 也是一個類似 RoR 的 Framework ,本身架構在 PHP 上,可在 php4, php5 上使用,開發快速的優點一樣,Model 也是採用 ActiveRecord 雖然跟 RoR 的有點不同,但是基本上也是非常的好用唷。

十二月
3
2007

AJAX 發生系統錯誤1072896658的解決方法

今天我的同事找我問一個關於AJAX 系統錯誤1072896658的問題,可是我從來沒有看過這個錯誤,所以只能在網路上搜尋找解決方法.

再試過許多方法都沒有辦法順利解決問題之後,
我原本想要建議同事換另外一種寫法,
但是令人佩服的大陸同胞,
居然想出了一種超屌的寫法來解決這個問題.
我的同事在測試之後也順利解決了 系統錯誤 1072896658

下面就是令我相當佩服的寫法
header("Cache-Control:no-cache,must-revalidate");
header("Content-type:text/html;charset= utf-8");
header("Content-Type: text/plain; charset=gb2312");

真的是太厲害了…

六月
17
2007

文繞圖版面的CSS全攻略

我的朋友剛剛請我幫他解決文繞圖的顯示問題,
我一直以為這個功能應該不難,
不過透過那位朋友口中得知還蠻多人遇到這樣的困擾.
因此我為了節省大家下載我的CSS來研究,
所以就直接把我的作法和大家分享一下.
不過如果各位有興趣研究436行的CSS,
我也是不反對大家下載回去研究啦.

[ 版面配置 ]
首先我先說明一下版面配置的順序
<div class=ad-right>
放入廣告的代碼,像我就是放入Adsense的代碼
</div>

<p>
文章內容
</p>

如果<p>放在<div>前面,你就會發現,
歐耶~~廣告版面不聽話,到處亂飛囉..

[ CSS 內容 ]
.ad-right {
    float: right;
    position:static; margin:0pt 45px 0px 5px; z-index:3;
    width:280px;
    }

[ CSS 內容修改重點說明 ]
right  : 我希望廣告是放在右邊,所以將它設定在右邊
margin : 後面接的四組數字(0pt 45px 0px 5px),分別代表 上 右 下 左 可以根據個人的版面進行微調
width:280px : 廣告的寬度

[ p 的進階調整 ]
如果各位有研究阿維雜記本的原始碼和CSS的話,
會發現我在p的部份是寫成 <p class="postContent">
然後在CSS中加入
.postContent a:link{
        color: #3300FF;
        border-bottom: dashed 1px;        
        border-bottom-color : #FF3300;
        }
這樣文章中的連結就會以藍色字加上紅色的虛線底線呈現,
大家可以根據自己的喜好再進行調整.

[ 根據不同的瀏覽器使用不同的CSS ]
做完上面的步驟之後,如果發現你想要的呈現位置在IE6和FireFox所呈現出來的位置不同.
這時候我們就要來加工一下,讓不同的瀏覽器跑不同的CSS.
寫法也是相當的簡單,在原本引用CSS的後面加入下面這段
    <!–[if IE 6]>
    <link rel="stylesheet" type="text/css" href="css/ie6_main.css" />
    <![endif]–>

原始的CSS我命名為main.css,然後另外存成ie6_main.css
這個ie6_main.css就是專門讓IE6來執行的.

[ 後記 ]
據可靠消息來源,某位Cx長期臥底私底下告訴我,有來自綠色工廠的哇x來我這借用CSS
上面這幾句是在MSN上搞笑的,希望當事人都不要介意喔.
最後我希望大家都可以順利做出自己想要的文繞圖版面

六月
16
2007

mod_rewrite 的一些小紀錄

我昨天在修改阿維雜記本的顯示方式使用了mod_rewrite的方法.
因為是第一次使用這樣的功能,於是在網路上面找了一些文章,
下面貼的兩篇是我覺得還蠻有用的兩篇.
給有需要的朋友參考,也當作是自己的備忘.

RewriteEngine On
RewriteRule ^/soft/([0-9]+).html$ /soft.php?id=$1
//解释
//WWW.玉米.COM/SOFT/1234.HTML
//重写为
//WWW.玉米.COM/soft.php?id=1234
//这里ID是可以变的 你给它 1 就是传递1

RewriteRule ^/([0-9]+).html$ /soft.php?id=$1
//解释
//WWW.玉米.COM/1234.HTML
//重写为
//WWW.玉米.COM/soft.php?id=1234

RewriteRule ^/([0-9]+)_([0-9]+).html$ /soft.php?id=$1&catid=$2
//解释
//WWW.玉米.COM/1234_2222.HTML
//重写为
//WWW.玉米.COM/soft.php?id=1234&catid=2222

当然随便你怎么换!
这就是 WIN下的.
LIUNX下是一样的 但是要加
<IfModule mod_rewrite.c>开始
</IfModule>结束
重写都加在虚拟主机设置中.
如果没有虚拟主机,那加在最后!

1) R[=code](force redirect) 强制外部重定向
   强制在替代字符串加上http://thishost[:thisport]/前缀重定向到外部的URL.如果code不指定,将用缺省的302 HTTP状态码。
2) F(force URL to be forbidden)禁用URL,返回403HTTP状态码。
3) G(force URL to be gone) 强制URL为GONE,返回410HTTP状态码。
4) P(force proxy) 强制使用代理转发。
5) L(last rule) 表明当前规则是最后一条规则,停止分析以后规则的重写。
6) N(next round) 重新从第一条规则开始运行重写过程。
7) C(chained with next rule) 与下一条规则关联
   如果规则匹配则正常处理,该标志无效,如果不匹配,那么下面所有关联的规则都跳过。
8) T=MIME-type(force MIME type) 强制MIME类型
9) NS (used only if no internal sub-request) 只用于不是内部子请求
10) NC(no case) 不区分大小写
11) QSA(query string append) 追加请求字符串
12) NE(no URI escaping of output) 不在输出转义特殊字符
    例如:RewriteRule /foo/(.*) /bar?arg=P1\%3d$1 [R,NE] 将能正确的将/foo/zoo转换成/bar?arg=P1=zed
13) PT(pass through to next handler) 传递给下一个处理
    例如:
       RewriteRule ^/abc(.*) /def$1 [PT] # 将会交给/def规则处理
       Alias /def /ghi
14) S=num(skip next rule(s)) 跳过num条规则
15) E=VAR:VAL(set environment variable) 设置环境变量

六月
6
2007

PHP實現上傳文件生成小圖加文字的實例

<?php
//自動縮圖$srcFile原文件,大圖;$photo_small目標文件,小圖;$dstW,$dstH是小圖的寬,高。
function makethumb($srcFile,$photo_small,$dstW,$dstH) {
    $data = GetImageSize($srcFile);
    switch ($data[2]) {
    case 1: //圖片類型,1是GIF圖
        $im = @ImageCreateFromGIF($srcFile);
        break;
    case 2: //圖片類型,2是JPG圖
        $im = @imagecreatefromjpeg($srcFile);
        break;
    case 3: //圖片類型,3是PNG圖
        $im = @ImageCreateFromPNG($srcFile);
        break;
    }
    $srcW=ImageSX($im);//原始圖片的寬度,也可以使用$data[0]
    $srcH=ImageSY($im);//原始圖片的高度,也可以使用$data[1]
    $srcX=0;//來源圖的坐標x,y
    $srcY=0;
   
    if(($srcW/$dstW)>($srcH/$dstH)){//得出要生成圖片的長寬
        $dstW2=$dstW;//輸出圖片的寬度、高度
        $dstH2=$srcH*$dstW/$srcW;
        $dstX=0;//輸出圖形的坐標x,y
        $dstY=($dstH-$dstH2)/2;
    }else{
        $dstH2=$dstH;//輸出圖片的寬度、高度
        $dstW2=$srcW*$dstW/$srcH;
        $dstX=($dstW-$dstW2)/2;//輸出圖形的坐標x,y
        $dstY=0;
    }

    $ni=imagecreatetruecolor($dstW,$dstH);//ImageCreate($dstW,$dstH);畫出空白花布的大小
    $colorBody=imagecolorallocate($ni,235,234,233);//定義背景顏色
    imagefill($ni,0,0,$colorBody);//填充背景顏色
    ImageCopyResized($ni,$im,$dstX,$dstY,$srcX,$srcY,$dstW2,$dstH2,$srcW,$srcH);
    ImageJpeg($ni,$photo_small);
    //ImageJpeg($ni); //在顯示圖片時用,把注釋取消,可以直接在頁面顯示出圖片。
}

//生成帶有版權信息的圖片
function makeCopyright($srcFile,$dstFile,$dstW,$dstH){
    $data = GetImageSize($srcFile);
    switch ($data[2]) {
        case 1: //圖片類型,1是GIF圖
            $srcImg = @ImageCreateFromGIF($srcFile);
            break;
    case 2: //圖片類型,2是JPG圖
            $srcImg = @imagecreatefromjpeg($srcFile);
            break;
    case 3: //圖片類型,3是PNG圖
            $srcImg = @ImageCreateFromPNG($srcFile);
            break;
    }
    $srcW=ImageSX($srcImg);//原始圖片的寬度,也可以使用$data[0]
    $srcH=ImageSY($srcImg);//原始圖片的高度,也可以使用$data[1]

    if(($srcW/$dstW)>($srcH/$dstH)){//得出要生成圖片的長寬
        $dstW2=$dstW;//輸出圖片的寬度、高度
        $dstH2=$srcH*$dstW/$srcW;
    }else{
            $dstH2=$dstH;//輸出圖片的寬度、高度
            $dstW2=$srcW*$dstW/$srcH;
    }

    $dstimg=imagecreatetruecolor($dstW2,$dstH2);//畫出空白花布的大小
    ImageCopyResized($dstimg,$srcImg,0,0,0,0,$dstW2,$dstH2,$srcW,$srcH);

    //定義要寫入的文字
    $word="http://www.webjx.com";//文字
    $font=5;//字體
    $wordColor=imagecolorallocate($dstimg,0x08,0x00,0x00);//顏色
    $wordX=$dstW2-200;//x坐標
    $wordY=$dstH2-20;//y坐標
    imagestring($dstimg,$font,$wordX,$wordY,$word,$wordColor);//寫入文字
    ImageJpeg($dstimg,$dstFile);
    //ImageJpeg($ni); //在顯示圖片時用,把注釋取消,可以直接在頁面顯示出圖片。
}

//調用
$srcFile=$pimg_name;//取得文件擴展名:
$type=substr(strrchr($pimg_name,"."),1);
$photo_ID=date("YmdHis");
$dst_small=$photo_ID."_s.".$type; //小圖
$dst_big=$photo_ID."_b.".$type; //大圖
makethumb($pimg,"../cpzs/".$dst_small,120,90);//120,90為小圖寬,高
makeCopyright($pimg,"../cpzs/".$dst_big,600,480);

(copy($pimg,"../cpzs/".$dst_big)) ? echo "文件上傳成功<br>" : echo "文件上傳失敗<br>";
?>

頁次:1234567...13»