为什么我得不到我想要的东西

时间:2013-06-12 18:59:42

标签: php

我正在尝试创建列表项,其中信息来自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时会出现问题,这些寄存器将传递给模板。它只打印姓名的第一个字母和电子邮件的第一个字母。

2 个答案:

答案 0 :(得分:1)

当你返回时它结束了这个功能。如果你想要所有用户,你需要在foreach循环之外返回该数组。但由于$ users已经是一个数组,除了做爆炸之外,你甚至不需要foreach循环。

答案 1 :(得分:0)

我想你想要更像的东西:

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;
}