0

我们有一个客户想在他们的网站上输出电影列表。这个特定的电影院为我们提供了一个链接,可以从中检索信息。该链接以纯文本形式简单输出,元素以~|~ 分隔

我正在使用explode 和strpos 将列表划分为div,但是对于我想要实现的目标来说它仍然不够好。我只是无法理解我可以做些什么来正确格式化它。这是我的代码:

<?php

$theArray = explode("~|~", file_get_contents("THE URL"));

echo "<ul id=\"cinemaListings\">";

foreach($theArray as $item){

    $findcinemaid = '~77';
    $findcinemaname = 'Cinema Name';
    $findx = 'X';
    $findu = 'U';
    $findgen = 'Gen';
    $findlink = '.ie';

    if(strpos($item, $findcinemaname) !== false){

        echo "<div class='cinemaName'>" . $item . "</div>";

    }elseif(strpos($item, $findgen) !== false){

        echo "<div class='cinemaGen'>" . $item . "</div>";

    }elseif(strpos($item, $findcinemaid) !== false){

        echo "<li>";

    }elseif($item == $findx){

        echo "<div class='cinemaX'>" . $item . "</div>";

    }elseif(strlen($item) == 8){

        echo "<div class='cinemaCode'>" . $item . "</div>";

    }elseif(strlen($item) == 3){

        echo "<div class='cinemaListId'>" . $item . "</div>";

    }elseif(strlen($item) == 2){

        echo "<div class='cinemaListId'>" . $item . "</div>";

    }elseif(strlen($item) == 1){

        echo "<div class='cinemaListId'>" . $item . "</div>";

    }elseif(DateTime::createFromFormat('H:i', $item) !== FALSE){;

        echo "<div class='cinemaTime'>" . $item . "</div>";

    }elseif(strpos($item, $findlink) !== false){

        echo "<div class='cinemaLink'>" . $item . "</div>";

    }elseif(DateTime::createFromFormat('d/m/Y', $item) !== FALSE){;

            echo "<div class='cinemaDate'>" . $item . "</div>";

    }else {

        echo "<div>" . $item . "</div>";

    }
}

echo "</ul>";

?>

然而,这个脚本正在输出(当然有 div 和类,只是不想全部添加):

<li>The Smurfs 2 2D   30/08/2013   11:10</li>
<li>The Smurfs 2 2D   30/08/2013   13:20</li>
<li>The Smurfs 2 2D   31/08/2013   11:10</li>
<li>The Smurfs 2 2D   31/08/2013   13:20</li>
<li>Elysium   04/09/2013   15:45</li>
<li>Elysium   04/09/2013   21:00</li>
<li>Elysium   05/09/2013   15:45</li>

是否有任何可能的方法来格式化如下:

<li>
The Smurfs 2 2D
30/08/2013 (today's date)
11:10   13:20
</li>

<li>
Elysium
04/09/2013 (today's date)
15:45   21:00
</li>

所以只有一个电影名称,今天的日期和当天的时间(当然有课程)。然后进入下一部电影……等等。

我被困住了,不胜感激!提前致谢。

4

1 回答 1

0

你说的是源码布局还是前端html布局?如果是源布局,您是否尝试过替换它:

echo "<div class='cinemaName'>" . $item . "</div>";

有了这个(?):

echo "<div class='cinemaName'>" . preg_replace( '   ', "\r\n", $item ) . "</div>";

由于看起来 . 的每个段之间有 3 个空格$item,因此您可以将它们替换为 return 速记\r\n(或仅\n适用于某些系统)。

如果是前端布局,就用同样的方法,只是\r\n把它改成<br/>.

于 2013-08-28T16:47:09.557 回答