ZestySetudios
ZestySetudios

Reputation: 113

PHP CRON job, not output HTTP headers

I have a PHP script that is called via a cron job, with the results sent to my email address:

"php /path/to/cron.php"

I only echo errors, otherwise nothing is outputted by me. This way I can get an error report when things go wrong. The problem is, I receive an email with ever cron execution, that only has the HTTP headers in it:

X-Powered-By: PHP/5.2.10
Content-type: text/html

This is obviously a pain, receiving multiple emails every few minutes. All I'd like to see are emails for cron jobs where I've echo'd something.

I want to keep the email being generated by the cron job if possible (instead of sending the email in-script). And I don't want to run it via wget, because my host counts that against my bandwidth.

All my searching has only shown me how to set headers, not remove/suppress the default ones. Am I going about this wrong?

Upvotes: 11

Views: 3570

Answers (4)

Justin Reinhart
Justin Reinhart

Reputation: 19

Helpful note for others researching a very similar issue: Additionally, it should be noted that any trailing newlines or whitespace after a closing php tag will cause a cron job to produce seemingly blank output, even if headers are silenced.

?>

Many people choose to omit their php closing tag for this reason.

Upvotes: -1

Ammar Al Amery
Ammar Al Amery

Reputation: 1

If you're using cPanel, just put the syntax as following:

php /home/<User>/public_html/cron.php >/dev/null 2>&1

Upvotes: 0

Vivek Sahu
Vivek Sahu

Reputation: 9

Using this full command it will work first in configuration file call the your php file will be executed

php -c /home1/sam/public_html/php.ini /home1/sam/public_html/sam_RFID/Android/Email.php

Just Check It.

Upvotes: 0

Joel
Joel

Reputation: 11851

Try this

php -q /path/to/cron.php

From here: http://www.php.net/manual/en/features.commandline.php#24970

Upvotes: 14

Related Questions