user3455727
user3455727

Reputation:

echo html as text with PHP variable

I need to display a large amount of html as text(a table) which contains PHP variables. Now I would like to know if there is a command that echos the HTML as text, but keeps the PHP.

I know I can change the > with >. I'm just wondering if there is a better way to do this.

<table style="width:400px">
    <tr>
        <td><b style="font-size:27px;">$_POST['name']</b></td>  
        <td rowspan="2"> IMG</td>
    </tr>
    <tr>
        <td><b style="font-size:23px;font-weight:400">$_POST['function']</b></td>
    </tr>
</table>

This is only a part of it of course.

TL;DR: I want to echo the above text(as text, not code) but the variables from PHP need to execute as code.

Upvotes: 0

Views: 6352

Answers (2)

n-dru
n-dru

Reputation: 9440

Use htmlspecialchars and add curly braces around PHP variables:

$string = "<table style=\"width:400px\">
    <tr>
        <td><b style=\"font-size:27px;\">{$_POST['name']}</b></td>  
        <td rowspan=\"2\"> IMG</td>
    </tr>
    <tr>
        <td><b style=\"font-size:23px;font-weight:400\">{$_POST['function']}</b></td>
    </tr>
</table>";
echo htmlspecialchars($string);

Upvotes: 1

Erik
Erik

Reputation: 3636

Pushing it through the htmlentities function when you output the data should work. The function will convert whatever string you put in into one that looks exactly the same when rendered in HTML, which seems to be what you want.

Upvotes: 3

Related Questions