我收到一个错误,说第二个 foreach 循环的第 24 行中提供的参数无效。你能看到错误吗?它最初必须获取联系人并将其显示在 html 中的表中。 任何见解将不胜感激。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<link rel="stylesheet" type="text/css" href="styles/session_Style.css">
<title>User Session</title>
</head>
<body>
<div class="container">
<div id="table">
<?php
$filename = "Contacts.txt";
$content = file_get_contents($filename);
$formContacts = explode('|----------|', $content);
foreach ($formContacts as $formContact => $contact) {
echo '<table>';
echo '<tr><th colspan="2">Contact '.$formContact.'</th></tr>';
foreach ($contact as $detail) {
$details = explode(':',$detail);
echo '<tr><td>'.$details[0].'</td><td>'.$details[1].'</td></tr>';
}
echo '</table>';
}
?>
</div>
<div class="logout">
<h1>User Details</h1>
<form method="post" action="">
<p class="submit"><input type="submit" name="commit" value="Log Out" onclick="document.location.href='home-page.html';"></p>
</form>
</div>
</div>
</body>
</html>
联系人.txt的结构是这样的
First Name : ......;
Last Name: ......;
Contact Details:.....;
Email Address:.....;
Enquirer Type:.....;
Contact Method:....;
Message:....';
|----------|
First Name : ......;
..............
$contact是一个字符串,而不是一个可遍历的字符串(http://php.net/manual/de/class.traversable.php)。
print_r(gettype($contact));
foreach ($contact as $detail) {
您缺少用于拆分数据集的命令爆炸
$row = explode(';',$contact);
整个示例
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<link rel="stylesheet" type="text/css" href="styles/session_Style.css">
<title>User Session</title>
</head>
<body>
<div class="container">
<div id="table">
<?php
$filename = "Contacts.txt";
$content = file_get_contents($filename);
$formContacts = explode('|----------|', $content);
if(!is_array($formContacts)) $formContacts = [];
foreach($formContacts as $formContact=> $contact) {
echo '<table>';
echo '<tr><th colspan="2">Contact '.$formContact.'</th></tr>';
$row = explode(';', $contact);
if(!is_array($row)) continue;
foreach($row as $detail) {
$details = array_pad(explode(':', $detail, 2), 2, null);
echo '<tr><td>'.$details[0].'</td><td>'.$details[1].'</td></tr>';
}
echo '</table>';
}
?>
</div>
<div class="logout">
<h1>User Details</h1>
<form method="post" action="">
<p class="submit"><input type="submit" name="commit" value="Log Out" onclick="document.location.href = 'home-page.html';"></p>
</form>
</div>
</div>
</body>
</html>
样品
First Name : ......;
Last Name: ......;
Contact Details:.....;
Email Address:.....;
Enquirer Type:.....;
Contact Method:....;
Message:....;
|----------|
First Name : ......;
Last Name: ......;
Contact Details:.....;
Email Address:.....;
Enquirer Type:.....;
Contact Method:....;
Message:....;
|----------|
First Name : ......;