2013-06-12 105 views
-3

我試圖創建列表項,其中的信息來自php,它從保存在同一目錄中的.txt中抓取它。我有一些HTML與我的佈局和一些PHP文件與我使用的功能。爲什麼我沒有得到我要找的東西

這是html:所以我從php獲取變量。

<!doctype html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Document</title> 
</head> 
<body> 

    <h1>Folks On Your Mailing List</h1> 
     <?php 
     if($register_users){ 
      foreach ($register_users as $user) { 
       list($name,$email) = $user; 
       echo "<li> $name :<a href='mailto:$email'>$email</a></li>"; 
       } 
      } else{ 
      echo "No register menbers"; 
      } 
     ?> 
</body> 
</html> 

這裏是PHP我包括模板和我將使用的功能。

<?php 
    include "../functions.php"; 

    $register_users = get_registered_users(); 


    include "registered_user.tmpl.php"; 



?> 

最後但並非最不重要的功能

function get_registered_users($path = MAILING_LIST){ 
    $users = file($path); 



    foreach ($users as $user) { 
     $name = explode(": ", $user); 
     return $name ; 
    } 

$ PATH也是同樣的文檔中定義的常量,但它的確定 - 這不是問題。問題出現在返回$ name並將其分配給將被傳遞給模板的$ registers_users時。它只打印名稱的第一個字母和電子郵件的第一個字母。

+1

你'return'。它不會超過一次迭代。 – Blender

+0

你在'foreach()返回' –

回答

0

我想你想要更多的東西一樣:在`foreach`循環

function get_registered_users($path = MAILING_LIST) { 
    $users = file($path, FILE_IGNORE_NEW_LINES); 

    $output = array(); //Create an array to hold the array($parts) 
    foreach ($users as $user) { 
     $parts = explode(": ", $user); 
     $output[] = $parts; //Add the $parts to the bigger array 
    } 
    return $output; 
} 
1

當您返回它時結束該功能。如果你想要所有的用戶,你需要在你的foreach循環之外返回這個數組。但是因爲$ users已經是一個數組了,除了做爆炸之外,你甚至不需要foreach循環。

相關問題