Store html/php code into php variable
What is the best/safest way to store html mark up with php code in it into a php variable? Or is there a better solution rather than storing it into a variable?
EDIT: Sorry for not including what I am trying to do! I have a an article template that pulls all information (title/date/content/etc) from a database and loads it. I have a page where you submit an article and what I am trying to do is automate the file creation process. I want to create a file that is named the title of the article, then write the template code to it (hence the variable containing the template code and using fwrite()). I know I could just keep the template file on the website and copy it over/rename it, but if someone stumbles upon the template it is a complete mess, and I don't want to stor开发者_JAVA百科e it in plain text either.
I prefer something like this
$str = <<<EOD
Example of string with html <div>some sample text</div>
spanning multiple lines <span>span text!</span>
using heredoc syntax.
EOD;
This will give a cleaner way then EDO...
<?php ob_start(); ?>
<div>HTML goes here...</div>
<div>More HTML...</div>
<?php $my_var = ob_get_clean(); ?>
If you're working with a public website, I would not recommend storing things like articles in files on your server. It's messy, security-iffy, memory-inefficient, and otherwise unorthodox.
This would probably be a great situation in which to use a MySQL database. I'll assume you know how to work with one using PHP, but let me know if you don't know how.
In this way, you could store the HTML in the database using PHP's htmlentities()
function:
$var = htmlentities($var, ENT_QUOTES);
This way, all html characters (ex. "<", ">" and quotes as well) are encoded into the database safely. For example,
<strong>Here is HTML</strong>
becomes <strong>Here is HTML</strong>
That way, if your templates have any HTML, they can be easily and safely retrieved through mysql_query()
and displayed.
I'd store it in a file, and then when someone wants to create a new article, load it with DOMDocument, replace the elements you need to replace, and use DOMDocument::saveHTML to dump the code to a file when you're done =)
精彩评论