My code for the input php file is the following.
<!DOCTYPE html>
<html>
<body>
<form name="input" action="welcome.php" method="post">
Comment: <textarea name="input" rows="5" cols="40"></textarea>
<input type="submit" value="Submit">
</form>
</body>
</html>
For the output code it is the following.
<html>
<body>
Welcome <?php $a=$_POST["input"]; echo $a; ?><br>
</body>
</html>
When anything with extra spaces and newline are inputted, it automatically gets removed. For example :
When I input:
abcd
cda xyzb
Output is:
Welcome abcd cda xyzb
This is because new line characters are represented as , in the sourcecode you'll see new lines. Whitespaces get truncated if one follows another in HTML.
I suggest you to use the <pre>
tag, which does not only save the new lines (like php's nl2br()
) but also preserves the whitespaces.
<pre>
:<html>
<body>
<pre class="yourStyleForThisPreFormattedText">
Welcome <?php $a = $_POST["input"];
echo $a; ?>
</pre>
</body>
</html>
) and PHP functions:<html>
<body>
Welcome <?php $a = nl2br(str_replace(' ', ' ', $_POST["input"]), true);
echo $a; ?>
</body>
</html>
Notice:
For HTML4 and HTML5 use nl2br($str, true);
, for XHTML4 use nl2br($str);
- the difference is in the output: <br>
and <br />
. See http://php.net/nl2br
To display newline use nl2br()
<html>
<body>
Welcome <?php $a = nl2br($_POST["input"]);
echo $a; ?><br>
</body>
</html>
You can also add <pre>
tag to show preformatted text (all whitespaces).
Try this...
Welcome <?php echo htmlentities($_POST['input']); ?>
htmlentities()
converts your HTML.
Change
<textarea name="input" rows="5" cols="40"></textarea>
Into
<textarea name="input" rows="5" cols="40" wrap="virtual"></textarea>
You can also use wrap: off, hard, soft, physical