剛剛整理桌面的資料夾,按日期排列後,發現有一個2008年的txt檔,點開來看,都是一些電影的片名,原來我以前想要寫一個「電影名稱產生器」,後來收集片名完以後就忘記此事了。

用關鍵字搜尋了一下,網路上已有幾個類似的產生器,但收錄的詞彙都不多,而我的詞彙有兩百個,大概可以組合成一萬個不重複的電影片名,應該是比較厲害的。反正現在也是閒著沒事做,於是就把這幾年的電影名稱補充一下,花了幾分鐘就寫了一個陽春版本。其中有些片名還滿趣味的,例如:「那些年,我們一起追的奶爸」、「我的野蠻大丈夫」、貧民甩尾」「鋼鐵人妻,大家可以玩玩看。

在框框裡不好玩,直接前往網站:http://studentweb.ncnu.edu.tw/100105503/funny/mn_maring.php

其實這是一個無腦程式,就是做兩個陣列,一個收錄片名前半段、一個收錄後半段,隨機取出兩個組合起來就變成一個完整的片名了。

<?
$a=array("死亡","東京","海角");//前片名
$b=array("的奇幻漂流","遊戲","效應","停止轉動");//後片名
$c=count($a);//前片名陣列最大值
$e=count($b);//後片名陣列最大值
$g=$_POST['ans'];//回傳過來的產生數量,帶到下面的for迴圈
?>

 

不過有兩個地方有要注意,有的詞彙是兩個資料庫都有收入的,要先用strcasecmp 這個函數把他們去掉。另外,結構助詞、介詞碰在一起的時候也可用ereg_replace來稍微處理。

<?
for($i=1;$i<=$g;$i++)
{
$d=rand(0,$c-1);//前片名亂數取值
$f=rand(0,$e-1);//後片名亂數取值
$j=strcasecmp($a[$d],$b[$f]);//過濾前片名與後片名重複情況,相同的話會回傳0
if($j==0)//如果前後相同,則改變後片的片名
$h=$a[$d].$b[$f-1];
else
{
$h=$a[$d].$b[$f];
$h=ereg_replace("的的","的",$h);//過濾重複字
$h=ereg_replace("的之","之",$h);
}
echo$i.".".$h."<br>";//輸出
}
?>

okplaymayday 發表在 痞客邦 PIXNET 留言(0) 人氣()