Archive

文章標籤 ‘php’

PHP限制顯示字數語法,中英文混雜時不亂碼

2010年9月1日 尚無評論

這是在UTF-8網頁編碼的環境下使用,我參考神隱部落所修改的PHP限制顯示字串語法,原作者的語法我使用後發現,當實際字數少於需要顯示的字數的時候,後面3個...還是會出現??
原來是寫成 if (strlen($a) > $b) echo "...";
照理說應該這樣字數應該能夠比較才對,
不知是變數$b沒有轉成數字型態還是怎樣,所以我將strlen($a) > $b 改為 strlen($a) > strlen($sub_content)
2個變數都先用strlen取得字串長度,再進行比較,就正常了,
而且不會有中英文混雜時亂碼的問題

<?php
//裁切字串
function cut_content($a,$b){
    $a = strip_tags($a); //去除HTML標籤
    $sub_content = mb_substr($a, 0, $b, 'UTF-8'); //擷取子字串
    echo $sub_content;  //顯示處理後的摘要文字
    //顯示 "......"
    if (strlen($a) > strlen($sub_content)) echo "...";
}

//以上程式已經包裝起來,您可存放在例如:function.php網頁
//往後只要使用include("function.php");
//加上 cut_content($a,$b);即可,不需每次撰寫.
//$a代表欲裁切內容.
//$b代表欲裁切字數(字元數)
?>
Categories: PHP, 程式設計 Tags: , , ,

PHP判斷Client端瀏覽器是否為IE6.0

2010年8月31日 尚無評論

IE6.0實在是所有網頁設計者的夢靨,有些頁面如IE6.0不支援,乾脆直接跳出警告或轉頁,底下是偵測Client端瀏覽器版本是否為IE6.0

if(strpos($_SERVER['HTTP_USER_AGENT'],'MSIE 6.0') == true )
{
    // ie 6.0
    header('Location: ../ie6_page.php');
}
else
{
    //not ie 6.0
    header('Location: ../not_ie6_page.php');
}

如果去掉6.0的話就只檢查是不是IE

Categories: PHP Tags: ,

PHP與ASP的response.end相同語法為...

2010年8月4日 尚無評論

Debug

老師說學寫程式的第一步就是...要會除錯

剛剛找了半天,原來PHP與ASP的response.end(終止程式碼執行)

相同的語法為:

exit;

超簡單的~~=.="

Categories: PHP Tags: , ,

PHP過濾特定的HTML標籤

2010年3月20日 尚無評論

有時候如果需要在網站上放留言版供網友留言,但有些HTML標籤如<br/>換行要讓他有作用,又要避免一些特定的HTML標籤會讓有心人士做壞事,例如在留言內容夾雜<a href><img>等標籤,讓人不小心連結過去而中毒,這時就可以加入這個函式: 

<?php  /**
    * Works like PHP function strip_tags, but it only removes selected tags.
    * Example:
    *     strip_selected_tags('<b>Person:</b> <strong>Salavert</strong>', 'strong') => <b>Person:</b> Salavert
    */ 

function strip_selected_tags($text, $tags = array())
{
    $args = func_get_args();
    $text = array_shift($args);
    $tags = func_num_args() > 2 ? array_diff($args,array($text))  : (array)$tags;
    foreach ($tags as $tag){
        while(preg_match('/<'.$tag.'(|\W[^>]*)>(.*)<\/'. $tag .'>/iusU', $text, $found)){
            $text = str_replace($found[0],$found[2],$text);
        }
    } 

    return preg_replace('/(<('.join('|',$tags).')(|\W.*)\/>)/iusU', '', $text);
}
?> 

在要顯示訪客留言的欄位呼叫這個函式,與要過濾的特定標籤,這樣比較靈活,例如只要過濾不讓連結與圖片的HTML標籤有效,就在$your_text,之後加上要過濾的標籤名稱a,img...

傳進涵式後,標籤會轉為陣列逐一過濾 


<?php echo strip_selected_tags($your_text,"a","img"); ?>

註:要讓輸入文字時按Entert產生的“\n”轉變成換行的<br/>,可能還需要再包入 nl2br 這個函式,例如:


<?php echo strip_selected_tags(nl2br($your_text),"a","img"); ?>

 nl2br 是 PHP 內建的涵式,直接呼叫就可以了

參考資料:http://tw.php.net/manual/en/function.strip-tags.php

Categories: PHP Tags: , ,

讓information_schema資料庫在 PHPMyAdmin中不顯示

2010年3月12日 尚無評論

在預設的情況下,安裝完phpMyAdmin後,不管用什麼帳號登入,一定都會看到 information_schema 這個資料庫,但我們又不能對這個資料庫進行修改,只能查看它的一些訊息,大家都想把這個資料庫隱藏起來不要顯示,其實phpMyAdmin提供這項功能。

找到根目錄下的config.inc.php檔,然後在大約第35行的位置

在下圖第7行的位置 $cfg['Servers'][$i]['extension'] = 'mysql';  這行底下

加入這行 $cfg['Servers'][$i]['hide_db'] = 'information_schema';

如下: 閱讀全文...

Categories: PHP Tags: , ,