Hi,

I can't really understand that. Not sure if you understand my problem
properly (if I've not explained properly). Anyone can give me some solutions
please?

Thanks.

2008/10/31 Yeti <[EMAIL PROTECTED]>

> OK I guess it's somehow like this ..
>
> <form>
> <?php
> if (isset($_POST['submit'])) {
> include('sessions.php');
> // include sessions.php
> }
> ?>
> <!-- form innerhtml -->
> </form>
>
> now this of course is something very bad to do and it wont work.
> One way to prevent markup from being outputted is using ob_buffer() [1]
>
> EXAMPLE:
> <?php
> $form = <<<FORM
> <form>
> <!-- form inner xml -->
> </form>
> FORM;
> ob_start();
> echo $form;
> $output_buffer = ob_get_contents();
> ob_end_clean();
> var_dump(nl2br(htmlentities($output_buffer)));
> ?>
>
> So what we do here is simply start the output buffer befor echoing $form.
> ob_get_contents() returns the outputbuffer as it is right now.
> By calling ob_end_clean() buffering is stopped and the buffer cache
> released.
> Still keep in mind that headers will still be sent when buffering the
> output.
>
> here is a more complex
> EXAMPLE:
> <?php
> ob_start(); // starting the output buffer
> ?>
> <html>
>        <body>
>                <!-- inner xml -->
>        {{replace_me}}
>    </body>
> </html>
> <?php
> $output_buffer = ob_get_contents();
> ob_end_clean();
> session_start();
> $_SESSION['test'] = time();
> echo str_replace('{{replace_me}}', '<p>This is the replaced string.<br
> />SESSION[test] was set to: '.$_SESSION['test'].'</p>',
> $output_buffer);
> ?>
>
> Now we start the output buffer at the beginning of the script and the
> session at the end.
> It does not matter whether we close the PHP tag after starting the
> ob_buffer. ( like with ?> )
> As long as we do not flush_end or clean_end the output buffering
> process it will continue caching the output (except headers).
> So session_start should work after actually "outputting" markup.
>
> Another method could be like we did above the str_replace() [2] ...
>
> EXAMPLE:
> <?php
> $some_number = time();
> $html = <<<HTML
> <html>
>        <body>
>                <p>Time: $some_number</p>
>                <p>{{replace_me}}</p>
>        </body>
> </html>
> HTML;
> echo str_replace('{{replace_me}}', 'This string was changed by PHP',
> $html);
> ?>
>
> There is still plenty of other possible solutions. Keep on rocking
>
> [1] http://in.php.net/manual/en/ref.outcontrol.php
> [2] http://in.php.net/manual/en/function.str-replace.php
>
> //A yeti
>

Reply via email to