|
Posted by Schraalhans Keukenmeester on 02/15/07 18:44
Ian Taylor wrote:
> Schraalhans Keukenmeester wrote:
>> I want to build a very basic online text editor, to allow customers to
>> modify their own sites' html content using a simple form with textarea
>> element.
>>
>> I read the HTML file like so:
>>
>> <?PHP
>>
>> function EditText ($filepath)
>> {
>> if (!$file = file($filepath)) return false;
>> foreach ($file as $line) {
>> $value .= $line; // contains all text in file when done
>> }
>> $html = "<html><head><title>Editor</title></head>
>> <body>
>> <form method='post' action='processtext.php'>
>> <textarea rows='40' cols='80' name='txt' value='$value'>
>> <input type='submit'>
>> </form>
>> </body>
>> </html>";
>> echo $html;
>> return true;
>> }
>>
>> EditText ('/sample/index.html');
>> ?>
>>
>> The problem comes when the parsed file containing html elements itself
>> is echoed to the browser. In itself, PHP does what it's asked, but all
>> browsers I tried choke on the contents of the TEXTAREA field. Best
>> example may be: try parsing the file containing the script itself, it
>> becomes a real mess.
>>
>> I tried htmlspecialchars, this did not fix it. I tried addslashes to
>> only escape the quotes in the parsed file, also no success.
>>
>> I saw one example online where 'they' preg_replaced about every possible
>> (x)html and php syntax element, resulting in an immensely large and slow
>> script. Can't imagine that's the proper way forward.
>>
>> If at all possible I'd like to stay away from Javascript. Any idea if
>> this is a realistic approach? Are there any useable scripts available? I
>> searched google a lot, but I keep ending up at sites that offer html or
>> php editors for local use, not in a browser.
>>
>> Thanks for any good tips!
>
> htmlentities() is probably what you're looking for:
>
> <textarea name='txt'>".htmlentities($value)."</textarea>
>
> Also note the correction of the textarea content format!
>
> HTH,
>
> Ian.
Gee, how did I miss that. Thx. Must have been late when I put this
together. Thanks a bunch! Duh! Kindergarten stuff. Why didn't I learn a
skill .... ;-) Great, now I'm done. Works for me like this!
Sh.
[Back to original message]
|