簡體   English   中英

從PHP中的逗號分隔值創建UL

[英]Create an UL from comma separated Values in PHP

我正在創建一個用戶輸入,希望他們列出鏈接和描述。

從頭開始執行此操作,因此我願意接受sytax建議。 我在想這樣的事情:

www.ebay.com | "my Ebay" , http://www.craigslist.org?s=bla | "Craiglist" ,
www.twitter.com/ev | "My Twitter"

我想用php將其轉換為UL。 我想我會為每個使用a,但是想知道實現此目標的最佳方法是什么。

所以目標:

  1. 抓取URL,如果將HTTP附加在URL后面,則將其刪除
  2. 抓斗描述
  3. 創建類似於此的鏈接

     <a href="http://<?php echo $link; ?>"><?php echo $desc; ?></a></li> 
$data = explode(",", $string);
$list = "<ul>";
foreach ($data as $item) {
    list($website, $title) = explode("|", $item);

    // Clean up the extra white spaces, if any.
    $website = trim($website);
    $title = trim($title);

    // make lowercase for the below check
    $website = strtolower($website); 

    // if website does not have http:// append it
    $website = (strpos($website, "http://") !== 0)?"http://" . $website:$website;

    $title = str_replace('"', "", $title); // optional, but incase you do not want the quotes. 
    //If you do want them, then I would suggest htmlspecialchars so it does not mess up the title attribute below.
    $list .= '<li><a href="' . $website . '" title="' . $title . '">' . $title . '</a></li>';
}

$list .= '</ul>';
echo $list;

應該可以帶您到想要的地方。

更新請注意引號,它將破壞html。 解決方案,刪除引號,如str_replace所示,或使用htmlspecialchars()將其替換為html計數器部分。

更新

在第一個位置的網址中添加了對http://的檢查,如果不存在,它將被追加。 我用strpos()做一個簡單的檢查。

還添加了修剪並刪除了周圍的空格和|。 字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM