Posts tagged ‘php’

PHP mail() with Ubuntu Desktop and Gmail

Recently I was adapting a newsletter plugin for Wordpress and needed the PHP mail() function for testing. However an Ubuntu desktop install is missing Sendmail – the MTA that PHP expects to find on a Linux PC.

I use a local Apache/MySQL server on a laptop to do a lot of my development – I don’t need a full mail server just to send mail.

Also SMTP servers on dynamically assigned IP addresses are so untrusted these days that you can be pretty much guaranteed that a decent spam filter will reject your email based on a RBL lookup. By using Google Mail’s authenticated SMTP service you bypass this restriction.

The lightweight solution is ssmtp.
Continue reading ‘PHP mail() with Ubuntu Desktop and Gmail’ »

PHP: The include() include_once() performance debate

The include() include_once() performance debate

Updated with more tests on 2010-05-16.
Click here to jump to the 2010-05-16 update…

The conventional wisdom always said that PHP’s include()/require() was quicker than include_once()/require_once(), but recently I came across an interesting post by Arin Sarkissian which suggests otherwise. Also I found more commentary on the performance benefit of using relative versus absolute paths in include()/require() and include_once()/require_once() statements (although the main article’s conclusions contradict Arin’s experiments). The Drupal developers discussed and benchmarked the relative/absolute include() issue too.

So in keeping with the spirit of quick and dirty experimentation I hacked up some code and ran some tests on include()/require() against include_once()/require_once() and on the relative/absolute path issue. The results are pretty surprising and I love to hear some views.

Continue reading ‘PHP: The include() include_once() performance debate’ »

PHP Parse error: syntax error, unexpected T_STRING in /whatever/my-php-class.php.html on line 1 with PhpDocumentor files on CentOS

Apache LogoSymptom:

  • An XML file saved as something.php.html
  • Apache was trying to parse it as PHP and throwing an error because Short_open_tag was ‘on’

Fix:

Add the following to an .htaccess file in the folder (or a parent folder):

php_value short_open_tag off

I don’t know if this is a ‘bug’ or a ‘feature’. I don’t see why Apache should be interpreting *.php.html files as PHP (BAD Apache) but now that the issue is fixed for me I am not too concerned.

Update: 2010-05-07:

Kae Varens already came across this and blogged about it in October 2008. It turns out that

  1. it’s Apache – not me!
  2. there is a lot more to this than meets the eye

If you manage your own Apache web server then Kae’s blog post is required reading.