|
Posted by Jon Slaughter on 05/10/07 17:00
"Chung Leong" <chernyshevsky@hotmail.com> wrote in message
news:1178812844.248954.101410@y5g2000hsa.googlegroups.com...
> On May 10, 4:29 pm, "Jon Slaughter" <Jon_Slaugh...@Hotmail.com> wrote:
>> I'm using eval to excute some mixed php and html code but I cannot debug
>> it.
>> I am essentially using filegetcontents to load up a php/html file and
>> then
>> inserting it into another php/html file and then using eval to execute
>> the
>> final product.
>>
>> If I were to use include and output buffering instead of filegetcontents
>> would it allow be to debug the code? (I have to capture the include so it
>> can be modified which is why I used filegetcontents and eval in the first
>> place).
>>
>> essentially instead of something like eval(mod(filegetcontents()))
>>
>> I would have
>>
>> ob_start();
>> include $filename;
>> $contents = mod(ob_get_contents());
>> ob_end_clean();
>>
>> As far as I can remember mod only modifies html code but I can't be
>> completely sure. In any case I'm not sure how the include eval the code
>> when
>> its buffered as if its just the output or what? Right now everythign is
>> working fine and I don't want to screw it up but I'm kinda dragging my
>> feet
>> because of the debugging issues.
>>
>> Thanks,
>> Jon
>
> An alternative to using eval() is to implement a stream wrapper, then
> using include/require on a custom URL. What I would do is save the
> generated content to a temporary file during debug so that you can
> more easily see where an error occur.
>
> See http://www.php.net/manual/en/ref.stream.php
>
Ok, I'm not sure if I understand what you mean. Are you saying that I should
read one php statement at a time and evaluate the php statements?
That is, I might read the file into an object and then parse it one
statement at a time and eval each statement. This way I could step through
the code... not necessarily the best way but does let me debug my code.
The problem is, that in my code I do something like
eval('?>'.AddNavToPage($MainPage));
Where $MainPage is just an html file that acts as a template(I probably
could have included it aftwards instead of the way I did it but I think its
probably to late to recode it at this point).
So when I debug the code I get to this line and then cannot debug whats
inside.
What is inside is what AddNavToPage does, which is inserts a php/html file
$mainpage into the template page to generate the total page.
Essentially AddNavToPage returns a mixed php/html that was stiched together
by 2 other pages.
I suppose I could save it to a temp file like you mentioned and then include
it and it should work?
that is, instead of the eval line I could do
if ($DEBUG)
{
file_put_contents($temp, AddNavToPage($MainPage)));
include $temp;
}
(psuedo code)
I'll try that and see what happens,
Thanks,
Jon
[Back to original message]
|