【网页制作-php】网页显示CS/DS/BA项目信息列表

cs1.txt

Stanford MSCS
https://cs.stanford.edu/admissions/checklist
ddl: 12-04
https://cs.stanford.edu/admissions/deadlines
网申链接
https://gradadmissions.stanford.edu/applying
录取数据统计
master_info/stanford_cs.html

Yale MSCS
https://cpsc.yale.edu/academics/graduate-program/master-science
ddl: 01-02
https://cpsc.yale.edu/academics/graduate-program/yale-computer-science-admissions-faq
网申链接
https://apply.grad.yale.edu/apply/status
录取数据统计
master_info/yale_cs.html
......

step1:program_info.php v01

读取txt文件,使用switch语句匹配关键字段,echo显示在网页

<?php
class Program
{
    public $program_info=array();
}

$filename = "cs1.txt";
$myfile = fopen( $filename, "r" ) or die("Unable to open file!");

while(!feof($myfile)) {
    $line1 = fgets($myfile);
    switch($line1){
        case stristr($line1,"ddl") == True:
            echo $line1.'<br>';
            $line2 = fgets($myfile);
            echo $line2.'<br>';
            break;
            
        case stristr(substr($line1,0,-1),"网申链接") == True:
            echo $line1.'<br>';
            $line2 = fgets($myfile);
            echo $line2.'<br>';
            break;      
    }
}

fclose( $myfile );

?>

网页显示如下
image.png

step2:program_info.php v02

将每个项目的信息保存到program对象的数组中

<?php
class Program
{
    public $program_info=array();
}

$filename = "cs1.txt";
$myfile = fopen( $filename, "r" ) or die("Unable to open file!");

$program_list = array();

$program=new Program();
while(!feof($myfile)) {
    $line1 = fgets($myfile);
      if(strlen($line1) <3) {
        $program_list[]=$program;   
        unset($program);
        continue;
      }
    $line2 = fgets($myfile);

    if($program->program_info['name'] == Null){//mark the start of a master program
        $program->program_info['name'] = $line1;
        $program->program_info['link'] = $line2;
    }
    
    switch($line1){
        case stristr($line1,"ddl") == True:
            $program->program_info['ddl']=array($line1, $line2);
            break;
            
        case stristr(substr($line1,0,-1),"网申链接") == True:
            $program->program_info['网申链接']=array($line1, $line2);
            break;      
    }
}

fclose( $myfile );

?>

<pre>
<?php print_r($program_list); ?>
</pre>

网页显示如下
image.png

step3:program_info.php v03

<?php
class Program
{
    public $program_info=array();
}

$filename = "cs1.txt";
$myfile = fopen( $filename, "r" ) or die("Unable to open file!");

$program_list = array();

$program=new Program();
while(!feof($myfile)) {
    $line1 = fgets($myfile);
      if(strlen($line1) <3) {
        if($program->program_info['name'] == Null) continue;//跳过连续的空格
        $program_list[]=$program;   
        unset($program);
        continue;
      }
    $line2 = fgets($myfile);

    if($program->program_info['name'] == Null){//mark the start of a master program
        $program->program_info['name'] = array($line1, $line2);
    }
    
    switch($line1){
        case stristr($line1,"ddl") == True:
            $program->program_info['ddl']=array($line1, $line2);
            break;
            
        case stristr(substr($line1,0,-1),"网申链接") == True:
            $program->program_info['网申链接']=array($line1, $line2);
            break;      
    }
}

fclose( $myfile );
?>

<!--
<pre>
<?php print_r($program_list); ?>
</pre>
-->

html部分如下:

<html>
<head>
    <meta charset="utf-8">
    <link href="../css/bootstrap.min.css" rel="stylesheet">
    <link href="../css/bootstrap-theme.min.css" rel="stylesheet">
    <script src="../js/jquery.min.js"></script>
    <script src="../js/bootstrap.min.js"></script>
</head>
<body>
<div>
    <h4 style="color:steelblue;text-align:center">CS项目信息</h4>
</div>

<div class=table-responsive">
<table class="table table-striped table-hover">
<tbody>
<?php
 foreach($program_list as $program){
    echo '<tr>';
    foreach($program->program_info as $item){
        echo '<td>';
        echo '<a href=', $item[1], ' target=blank>', $item[0], '</a>';
        echo '</td>';
    }
    echo '</tr>';
    }
?>
</tbody>
</table>
</div>
</body>
</html>

网页显示如下:
image.png

添加TOEFL信息列后,由于部分项目没有TOEFL信息,导致显示出了问题,一大片空白超难看
image.png

step4:program_info.php v04

填充缺失的信息项并对数组进行排序

 foreach($program_list as $program){
    //处理缺失的信息列
    if($program->program_info['04-TOEFL']==Null) {
        $program->program_info['04-TOEFL'] = array('N/A', '#');
    }
    if($program->program_info['05-录取数据']==Null) {
        $program->program_info['05-录取数据'] = array('N/A', '#');
    }
    //对associate数组进行排序,方便统一显示
    ksort($program->program_info);

完整代码如下:

<?php
class Program
{
    public $program_info=array();
}

$filename = "cs1.txt";
$myfile = fopen( $filename, "r" ) or die("Unable to open file!");

$program_list = array();

$program=new Program();
while(!feof($myfile)) {
    $line1 = fgets($myfile);
      if(strlen($line1) <3) {
        if($program->program_info['01-name'] == Null) continue;//跳过连续的空格
        $program_list[]=$program;   
        unset($program);
        continue;
      }
    $line2 = fgets($myfile);

    if($program->program_info['01-name'] == Null){//mark the start of a master program
        $program->program_info['01-name'] = array($line1, $line2);
    }
    
    switch($line1){
        case stristr($line1,"ddl") == True:
            $program->program_info['02-ddl']=array($line1, $line2);
            break;
            
        case stristr(substr($line1,0,-1),"网申链接") == True:
            $program->program_info['03-网申链接']=array($line1, $line2);
            break;      
            
        case stristr(substr($line1,0,-1),"TOEFL") == True:
            $program->program_info['04-TOEFL']=array($line1, $line2);
            break;  
            
        case stristr(substr($line1,0,-1),"录取数据") == True:
            if($program->program_info['05-录取数据'] == Null)
                $program->program_info['05-录取数据']=array($line1, $line2);
            break;
    }
}

fclose( $myfile );
?>

html显示部分:

<html>
<head>
    <meta charset="utf-8">
    <link href="../css/bootstrap.min.css" rel="stylesheet">
    <link href="../css/bootstrap-theme.min.css" rel="stylesheet">
    <script src="../js/jquery.min.js"></script>
    <script src="../js/bootstrap.min.js"></script>
</head>
<body>
<div>
    <h4 style="color:steelblue;text-align:center">CS项目信息</h4>
</div>

<div class=table-responsive">
<table class="table table-striped table-hover">
<tbody>
<?php
 foreach($program_list as $program){
    //处理缺失的信息列
    if($program->program_info['04-TOEFL']==Null) {
        $program->program_info['04-TOEFL'] = array('N/A', '#');
    }
    if($program->program_info['05-录取数据']==Null) {
        $program->program_info['05-录取数据'] = array('N/A', '#');
    }
    //对associate数组进行排序,方便统一显示
    ksort($program->program_info);
    
    //开始逐行显示表格
    echo '<tr>';
    foreach($program->program_info as $item){
        echo '<td>';
        echo '<a href=', $item[1], ' target=blank>', $item[0], '</a>';
        echo '</td>';
    }
    echo '</tr>';
 }
?>
</tbody>
</table>
</div>
</body>
</html>

网页显示如下:
image.png

step5:program_info.php v05

将功能封装成函数,方便读取多个文件(CS/DS/BA/MIS),然后在网页显示多个项目的列表,每个专业一个table;另外将“录取数据”信息栏设置成用小窗口显示

<?php
class Program
{
    public $program_info=array();
}

//用于存放CS项目信息
//$program_list_cs = array();
//$program_list_ds = array();

function generate_program_list($filename){
    $myfile = fopen( $filename, "r" ) or die("Unable to open file!");

    $program=new Program();
    while(!feof($myfile)) {
        $line1 = fgets($myfile);
        if(strlen($line1) <3) {
        if($program->program_info['01-name'] == Null) continue;//跳过连续的空格
        $program_list[]=$program;   
        unset($program);
        continue;
      }
      $line2 = fgets($myfile);

    if($program->program_info['01-name'] == Null){//mark the start of a master program
        $program->program_info['01-name'] = array($line1, $line2);
    }
    
    switch($line1){
        case stristr($line1,"ddl") == True:
        $program->program_info['02-ddl']=array(substr($line1,0,-1), substr($line2,0,-1));
        break;
        
        case stristr(substr($line1,0,-1),"网申链接") == True:
        $program->program_info['03-网申链接']=array(substr($line1,0,-1), substr($line2,0,-1));
        break;      
        
        case stristr(substr($line1,0,-1),"TOEFL") == True:
        $program->program_info['04-TOEFL']=array(substr($line1,0,-1), substr($line2,0,-1));
        break;  
        
        case stristr(substr($line1,0,-1),"录取数据") == True:
        if($program->program_info['05-录取数据'] == Null)
            $program->program_info['05-录取数据']=array(substr($line1,0,-1), substr($line2,0,-1));
        break;
    }
}
fclose( $myfile );
return $program_list;
}

//定义显示html的函数,$title是表格的标题,如:“CS项目信息”,“MIS项目信息”
function show_program_list($program_list, $title){
    echo '<br/><h4 style="color:steelblue;text-align:center">'.$title.'</h4>
    <div class=table-responsive">
    <table class="table table-striped table-hover">
    <tbody>';
    
    
    foreach($program_list as $program){
                //处理缺失的信息列
        if($program->program_info['04-TOEFL']==Null) {
            $program->program_info['04-TOEFL'] = array('N/A', '#');
        }
        if($program->program_info['05-录取数据']==Null) {
            $program->program_info['05-录取数据'] = array('N/A', '#');
        }
                    //对associate数组进行排序,方便统一显示
        ksort($program->program_info);
                    //开始逐行显示表格
        echo '<tr>';
        foreach($program->program_info as $item){
            echo '<td>';
            if(stristr($item[0],"录取数据") == True)
            //if(1==0)
                echo '<a href="#" onclick="window.open(\''.$item[1].'\' , \'录取数据\', \'width=600,height=600\' )">'.$item[0].'</a>';
            else
                echo '<a href=', $item[1], ' target=_blank>', $item[0], '</a>';
            echo '</td>';
        }
        echo '</tr>';
    }
    
    echo '</tbody>
    </table>
    </div>';
}

?>

html显示代码

<html>
<head>
    <meta charset="utf-8">
    <link href="../css/bootstrap.min.css" rel="stylesheet">
    <link href="../css/bootstrap-theme.min.css" rel="stylesheet">
    <script src="../js/jquery.min.js"></script>
    <script src="../js/bootstrap.min.js"></script>
</head>
<body>

    <div class=table-responsive">
        <table class="table table-striped table-hover">
            <tbody><tr><td>
                <p style="color:saddlebrown">需要<a href="#" onclick="window.open('bossqiao.html','蟹老板介绍','width=500,height=456')">蟹老板</a>留学服务的,( ̄︶ ̄)↗请加小助理微信:895718791(注明:留学申请服务)
                语音咨询:600元/小时(半小时起约)签约保录top 50全程服务(5万元/10所学校)</p>
            </td></tr></tbody>
        </table>
    </div>

    <?php
    $program_list_cs = generate_program_list("cs1.txt");
    $program_list_ds = generate_program_list("ds1.txt");
    $program_list_ba = generate_program_list("ba1.txt");
    $program_list_mis = generate_program_list("mis1.txt");
    show_program_list($program_list_cs, 'CS项目信息');
    show_program_list($program_list_ds, 'DS项目信息');
    show_program_list($program_list_ba, 'BA项目信息');
    show_program_list($program_list_mis, 'MIS项目信息');
    ?>

</body>
</html>

网页显示,直接戳这里=> DS/BA/CS/MIS项目信息列表
Github代码=>program_list

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,417评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,921评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,850评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,945评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,069评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,188评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,239评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,994评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,409评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,735评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,898评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,578评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,205评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,916评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,156评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,722评论 2 363
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,781评论 2 351

推荐阅读更多精彩内容