我是php的初学者,我正在尝试在news.txt文件中保存textarea内容。
保存后,我会在另一页显示结果。 一切正常,ddate和标题显示完美,甚至textarea内容,但如果按Enter键创建一个新行,它就不再起作用了。
这是发生的事情和一些代码。
注意:未定义的偏移量:第17行的C:\ Virtual Servers \ xampp \ htdocs \ read.php中的1
注意:未定义的偏移量:第18行的C:\ Virtual Servers \ xampp \ htdocs \ read.php中的2
和我的代码:
read.php page
<html>
<head>
<style>
.news{background:#f1f1f1;width:960px;height:500px;margin-bottom:15px;}
.title{color:red;}
.date{font-style:italic;}
.text{color:green;font-weight:bold;}
</style>
</head>
<body>
<?php
$i = 0;
$array = file("news/news.txt");
foreach($array as $row){
$split = explode('|', "$row");
$data = $split[0];
$titolo = $split[1];
$testo = $split[2];
$i++;
print '<div id="'.$i.'" class="news"><div class="date">'.$data.'</div><div class="title">'.$titolo.'</div><div class="text">'.$testo.'</div></div>';
}
?>
</body>
</html>
index.php页面:
<div class="container">
<form name="myform" onsubmit="return validateForm()" action="welcome.php" method="post">
<?php echo date('d-m-Y'); ?></br>
<h1>Titolo:</h1><input type="text" id="Title" name="titolo" class="textStyleTitle"><br>
<p>Testo:</p><textarea id="Text" name="testo" class="textStyleText"></textarea><br>
<input type="submit" value="salva">
</form>
</div>
任何解决方案?
非常感谢。
!! UPDATE !! 通过下面提到的解决方案,我已经部分解决了。我没有错误,但这是它的样子:
<body>
<div id="1" class="news">
<div class="date">04-01-2014</div>
<div class="title">Testing title</div>
<div class="text">Testing textarea row 1 (enter pressed)</div>
</div>
<div id="2" class="news">
<div class="date">Testing textarea row 2 (enter pressed)</div>
<div class="title"></div><div class="text"></div></div>
<div id="3" class="news">
<div class="date">Testing textarea row 3 (enter pressed)</div>
<div class="title"></div><div class="text"></div></div>
<div id="4" class="news">
<div class="date">Testing textarea row 4</div>
<div class="title"></div><div class="text"></div>
</div></body>
不幸的是,我试图达到的是这样的:
<body>
<div id="1" class="news">
<div class="date">04-01-2014</div>
<div class="title">Testing title</div>
<div class="text">Testing textarea row 1 (enter pressed)
Testing textarea row 2 (enter pressed)
Testing textarea row 3 (enter pressed)
Testing textarea row 4
</div>
</div>
答案 0 :(得分:1)
首先删除爆炸中的$ row引号,如下所示:
$split = explode('|', $row);
然后
使用:
$data = (isset($split[0])?$split[0]:"");
而不是
$data = $split[0];
$split[1]
和$split[2]
答案 1 :(得分:0)
您在此处犯了错误:$split = explode('|','$row')
,无需将$row
设置为
引号,因为它将它用作string
而非数组
您需要使用此$split = explode('|',$row)
将字符串分解为数组
答案 2 :(得分:0)
试试这段代码。
foreach($array as $row){
$data = $titolo = $testo = "";// initialize the valiables
$split = explode('|', $row);
$data = (isset($split[0])?$split[0]:"");
$titolo = (isset($split[1])?$split[1]:"");
$testo = (isset($split[2])?$split[2]:"");
$i++;
print '<div id="'.$i.'" class="news"><div class="date">'.$data.'</div><div class="title">'.$titolo.'</div><div class="text">'.$testo.'</div></div>';
}