2017年7月30日 星期日

[PHP]假文產生功能

在網路上,我們可能為了測試一些表單,或是為了填充一些網頁空間,需要一些沒有意義,但能擠滿某些空間的文字。

隨便搜尋「假文產生器」,就有很多文章在介紹及教學,但主要都是以 javascript 的方式操作,也有在直接放在瀏覽器的書籤上使用。

在這裡,我要做的是 PHP版本,可以在後端測試使用

因此,要使用這段程式的人,請確保你已經有一個完善的 PHP環境

前置作業:
XAMPP、APPSERV、免費(或付費) PHP 網站空間
PHP:5.6以上
HTTPD:apache、nginx皆可

程式如下:

function get_fake_content($number = 0)
{
    $default_content = $br_ary = [];
    $str_number = 10;   //字數預設值

    if ($number > 0) {
        $str_number = $number;
    }

    //取檔案內的所有文字
    $string = file_get_contents('words.txt');
    //標點符號
    $symbol = [",", "。", "~", "!", "?", ";", ";", "、", "...."];
    if (isset($string) and !empty($string) and is_string($string)) {
        //拆解文字變成陣列
        $new_str_ary = preg_split('/(?<!^)(?!$)/u', $string);
    }

    for ($k = 0; $k < $str_number; $k++) {
        //隨機取一個字塞入陣列
        $default_content[] = $new_str_ary[rand(0, count($new_str_ary) - 1)];
        //隨機取一個符號塞入陣列
        if (isset($symbol[rand(count($symbol)-2, 20)])) {
            $default_content[] = $symbol[rand(0, count($symbol) - 1)];
        }
    }

    //設定字數大於20字,加入斷行
    if ($str_number > 20) {
        for ($i = 0; $i < rand(0, $str_number); $i++) {
            $br_ary[$i] = '<BR>';
        }
        //合併兩個陣列
        $new_ary = array_merge($default_content, $br_ary);
    }else {
        $new_ary = $default_content;
    }
    
    //陣列打亂
    shuffle($new_ary);

    //合成字串
    return implode("", $new_ary);
}


使用說明:
$rand = rand(100, rand(200, 700));
$subject_data = get_fake_content(20);
$content_data = get_fake_content($rand);
當標題使用時,不大於20個字數
當內文使用時,最少大於20個字數

程式分享:
https://github.com/liangyutw/fake_content

沒有留言:

張貼留言

Lumen 微框架建立筆記

依官方文件操作 根據 lumen 的官方文件說明,先決條件是 PHP >= 7.1.3 OpenSSL PHP Extension PDO PHP Extension Mbstring PHP Extension 當然 composer 也是...