你應該在你<textarea>
只要頁面加載越來越以下錯誤:
<b>Notice</b>: Undefined variable: content in <b>/path/to/file.php</b> on line <b>x</b><br />
然而,你不檢查錯誤。
你需要做的是在其中使用$content
變量的條件語句。
旁註:在那裏缺少的分號是完全有效的,因爲在它之後沒有進一步的(PHP)指令被傳遞,所以讓我們失去這種誤解(在註釋中)。
但是,如果有使用時,條件語句,將需要執行以下操作:
if(isset($content)){ echo $content }
,並會失敗,因爲它是尋找一個「語句的結束」,並拋出了以下內容:
Parse error: syntax error, unexpected '}', expecting ',' or ';' in...
目前還不清楚你真的想在這裏與陣列做什麼,所以我不能在這裏幫你。
另一個旁註:
&&! empty
是有效的,但對於參數的緣故,我將它更具可讀性,&& !empty
。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
$search = array('foo','bar','foobar');
$replace = array('f**','b**','f**b**');
if (isset($_POST['cencor']) && !empty($_POST['cencor'])){
$content = $_POST['cencor'];
}
?>
<form action="findstring.php" method="post">
<textarea name="cencor" rows="10" cols="80"><?php if(isset($content)){ echo $content; } ?></textarea><br><br>
<input type="submit" value="submit">
</form>
</body>
</html>
腳註:
此條件語句:
if (isset($_POST['cencor']) && !empty($_POST['cencor']))
可以被削減到只:
if (!empty($_POST['cencor']))
沒有什麼東東d使用isset()
,因爲!empty()
已經足夠了。
上的補充說明:
爲了避免不確定的變量聲明,你可以做以下,並於$content
變量,這是完全有效的分配「無中生有」:
$search = array('foo','bar','foobar');
$replace = array('f**','b**','f**b**');
if (isset($_POST['cencor']) &&! empty($_POST['cencor'])){
$content = $_POST['cencor'];
}
$content = "";
關閉筆記:
如果這裏的目標是保持已輸入我的價值在<textarea>
瀏覽器的會話和用戶瀏覽整個網站的持續時間,那麼這就是你需要在這裏使用,會話。
例如:
PHP:
if(!empty($_POST['cencor'])){
$_SESSION['var'] = $_POST['cencor'];
$_POST['cencor'] = $_SESSION['var'];
}
HTML:
<textarea name="cencor" rows="10" cols="80"><?php if(isset($_SESSION['var'])){ echo $_SESSION['var']; } ?></textarea>
NOTA:如果這個答案沒有解決你想達到的目標,你需要詳細說明你的問題。
你在textarea裏面的'$ content'後會錯過一個分號? – JohannesB
要檢測更多的錯誤,你應該把你的錯誤報告。爲此,在你的文件的開頭添加'error_reporting(E_ALL)',你可以在這裏閱讀更多關於它的信息(http://php.net/manual/en/function.error-reporting.php)。 – JohannesB
它可能是「&&!」。在最後的&符號和驚歎號之間嘗試一下,並在感嘆號和「空」字之間沒有空格。但總體error_reporting可能是你想要的!幫助我走出很多! – tjfo