-3

我正在尝试创建信息来自 php 的列表项,它从保存在同一目录中的 .txt 中获取它。我有一些带有我的布局的 HTML 和一些带有我使用的函数的 php 文件。

这是 html:所以我从 php.ini 中获取变量。

<!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 时,问题就出现了。它只打印姓名的第一个字母和电子邮件的第一个字母。

4

2 回答 2

1

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

于 2013-06-12T19:03:33.280 回答
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;
}
于 2013-06-12T19:13:50.567 回答