Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

OT: from perl to php

by hesco (Deacon)
on Mar 26, 2006 at 00:17 UTC ( [id://539248]=perlquestion: print w/replies, xml ) Need Help??

hesco has asked for the wisdom of the Perl Monks concerning the following question:

Hey folks: Perhaps someone here can help me translate. Its been about five years since I coded anything more complicated than a simple html page in php. But I'm now having to adapt and extend some php code for a client. Can someone please remind me how to translate my usual testing mechanisms from perl to php? How do I do these in php?

perl -wc script.pl ./script.pl
I seem to recall there was some means of running a php script from a command line. But the method escapes me now. Any ideas?

Thanks for bearing with my off-topic request. I'm not sure where I'd ask this. I know of no phpmonks equivalent.

-- Hugh

Replies are listed 'Best First'.
Re: OT: from perl to php
by jdtoronto (Prior) on Mar 26, 2006 at 02:32 UTC
    Sitepoint has a series of articles on the subject, the first can be found here

    jdtoronto

Re: OT: from perl to php
by Cody Pendant (Prior) on Mar 26, 2006 at 08:29 UTC
    The "check syntax" appears to be the -l (lowercase L for Lint) flag. I don't know if there's any such thing as -w, although you might find something on this page. Does PHP even have warnings the way Perl does? It's not that type of language, I don't think. I see "warnings" from PHP pages all the time on the web, when they've failed completely.


    ($_='kkvvttuu bbooppuuiiffss qqffssmm iibbddllffss')
    =~y~b-v~a-z~s; print
      I see "warnings" from PHP pages all the time on the web, when they've failed completely.

      those warnings can be disabled when running PHP code in production, but people are often unaware of the (possible) security risks that those warnings reveal... or they just don't care - so they don't disable them :(   i guess the reason they're enabled by default is that PHP tries to be userfriendly.

      ...but what do i know?! i started playing with PHP 2 weeks ago. the similarities with Perl made it easy for me to learn and start using...

      :)))))
Re: OT: from perl to php
by weierophinney (Pilgrim) on Mar 26, 2006 at 23:40 UTC
    To achieve what you want, you need to do a few things.

    First, warnings. There are several ways to affect this. The INI key you're looking for is error_reporting, and you want it set to E_ALL (or, in PHP5, E_ALL | E_STRICT). You can do this by:

    • In your php.ini file, "error_reporting = E_ALL | E_STRICT"
    • In your php file, add the line "error_reporting(E_ALL | E_STRICT)"
    • Alternatively, create a file that does the above option, and set the INI setting 'auto_prepend_file = ...' to this location
    You still then have to tell PHP to actually display the errors. In development environments, you'll usually have this turned on, but should turn it off in production environments. Again, you need to affect an INI setting, this time 'display_errors":
    • In your php.ini file, "display_errors = On"
    • In your php file, add the line "ini_set('display_errors', true);"
    • Again, as above, add the above line to an auto_prepend_file
    The final part of your request is how to execute and/or test a file from the command line. The simple answer: "php script.php" will do so. If you want to test for well-formedness, add the -l switch (lint): "php -l script.php". You can also simply parse the file, which will catch some errors that linting won't: "php -f script.php".

    Finally, "php --help" gives you the above options, and more. As to the INI settings, look in the provided php.ini files, as they are very well commented.

    Update: You can also pass INI settings via the CLI option '-d'. If you want E_ALL (2047) and E_STRICT (2048), and to display errors, try the following: php -d "error_reporting=4095" -d "display-errors=On" myscript.php.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://539248]
Approved by spiritway
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others cooling their heels in the Monastery: (6)
As of 2024-04-25 08:15 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found