Getting root element of an XML with PHP SimpleXML

Posted by oshua in PHP, XML on 06. May, 2010 | No Comments

It is quite easy to get the root element/node of an XML string or file but just doesn’t seem to be explained elsewhere

Converting an XML to an array with PHP: a basic benchmark

Posted by oshua in PHP, XML on 06. May, 2010 | No Comments

SimpleXML seems like the way to go according to a simple benchmark

PHPExcel: read Excel from LAMP

Posted by oshua in PHP on 22. Oct, 2009 | 1 Comment

PHPExcel (http://www.phpexcel.net) is a set of classes to read and write Excel effectively, but it is even much more than just that.

Sending form vars as a serialized PHP object with JQuery

Posted by oshua in HTML, JQuery, PHP on 30. Sep, 2009 | 1 Comment

Sometimes you want to pass only part of a form through ajax to get some results without updating the whole page. JQuery has some great functions to convert the content of a form into a serialized string or object (either serialize or serializeArray). However they both take the content of a full form as input [...]

Inserting anonymous content on a database

Posted by oshua in Mysql, PHP on 16. Sep, 2009 | No Comments

When working in a web application that needs to do a complex insert on several tables of a database sometimes you need to know the next autoincrement id from one table although this record does not exist yet. For example, let’s say you wish to allow¬†users to join to your service but while doing it [...]

Making php-ffmpeg work on latest ffmpeg version

Posted by oshua in Linux, PHP on 09. Sep, 2009 | No Comments

Every now and then upgrades on ffmpeg affects php-ffmpeg. This is happening now with php-ffmpeg 0.6.0 and latest version of ffmpeg.
To compile php-ffmpeg 0.6.0 with latest ffmpeg version successfully you will need to follow these 2 steps:
1. First issue is reported in many places on the web. On the file ffmpeg_frame.c every ocurrence of PIX_FMT_RGBA32 [...]

3 ways to cleanup an e-mail’s database

Posted by oshua in Mail, PHP on 20. Aug, 2009 | 2 Comments

Nowadays to keep a database of email addresses clean is a primary task. Free mail services like Yahoo give low priority to mails coming from servers that have a history of sending mails to non-existent or disabled email accounts. Here I show 3 ways to cleanup e-mail’s databases automatically.

4 reasons to switch to Imagick if you still use GD

Posted by oshua in PHP on 18. Aug, 2009 | No Comments

Here are some reasons why Imagick is much better than GD:
- Image quality: even after common operations like resizing results are obvious. Make a simple test, try resizing an image with more than 1000×1000 pixels with GD and then do it with Imagick. You’ll see what I am talking about.
- Class based: operations are as [...]


PHVsPjxsaT48c3Ryb25nPndvb19hbHRfc3R5bGVzaGVldDwvc3Ryb25nPiAtIGRlZmF1bHQuY3NzPC9saT48bGk+PHN0cm9uZz53b29fYXV0b19pbWc8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2N1c3RvbV9jc3M8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19jdXN0b21fZmF2aWNvbjwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2V4Y2x1ZGVfY2F0czwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2V4Y2x1ZGVfcGFnZXM8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19mZWF0dXJlZF9wb3N0czwvc3Ryb25nPiAtIDU8L2xpPjxsaT48c3Ryb25nPndvb19mZWVkYnVybmVyX3VybDwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2dvb2dsZV9hbmFseXRpY3M8L3N0cm9uZz4gLSA8c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj4NCnZhciBnYUpzSG9zdCA9ICgoXCJodHRwczpcIiA9PSBkb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCkgPyBcImh0dHBzOi8vc3NsLlwiIDogXCJodHRwOi8vd3d3LlwiKTsNCmRvY3VtZW50LndyaXRlKHVuZXNjYXBlKFwiJTNDc2NyaXB0IHNyYz1cJ1wiICsgZ2FKc0hvc3QgKyBcImdvb2dsZS1hbmFseXRpY3MuY29tL2dhLmpzXCcgdHlwZT1cJ3RleHQvamF2YXNjcmlwdFwnJTNFJTNDL3NjcmlwdCUzRVwiKSk7DQo8L3NjcmlwdD4NCjxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiPg0KdHJ5IHsNCnZhciBwYWdlVHJhY2tlciA9IF9nYXQuX2dldFRyYWNrZXIoXCJVQS03ODU2MDY0LTEwXCIpOw0KcGFnZVRyYWNrZXIuX3RyYWNrUGFnZXZpZXcoKTsNCn0gY2F0Y2goZXJyKSB7fTwvc2NyaXB0PjwvbGk+PGxpPjxzdHJvbmc+d29vX2xvZ288L3N0cm9uZz4gLSBodHRwOi8vd3d3Lm9zaHVhbW9yZW5vLmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzctbG9nby5wbmc8L2xpPjxsaT48c3Ryb25nPndvb19tYW51YWw8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vc3VwcG9ydC90aGVtZS1kb2N1bWVudGF0aW9uL21ldGEtbW9ycGhvc2lzLzwvbGk+PGxpPjxzdHJvbmc+d29vX3Jlc2l6ZTwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19zaG9ydG5hbWU8L3N0cm9uZz4gLSB3b288L2xpPjxsaT48c3Ryb25nPndvb190aGVtZW5hbWU8L3N0cm9uZz4gLSBNZXRhLU1vcnBob3NpczwvbGk+PGxpPjxzdHJvbmc+d29vX3VwbG9hZHM8L3N0cm9uZz4gLSBhOjU6e2k6MDtzOjYwOiJodHRwOi8vd3d3Lm9zaHVhbW9yZW5vLmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzctbG9nby5wbmciO2k6MTtzOjYwOiJodHRwOi8vd3d3Lm9zaHVhbW9yZW5vLmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzYtbG9nby5wbmciO2k6MjtzOjYwOiJodHRwOi8vd3d3Lm9zaHVhbW9yZW5vLmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzUtbG9nby5wbmciO2k6MztzOjYwOiJodHRwOi8vd3d3Lm9zaHVhbW9yZW5vLmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzQtbG9nby5wbmciO2k6NDtzOjYwOiJodHRwOi8vd3d3Lm9zaHVhbW9yZW5vLmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzMtbG9nby5wbmciO308L2xpPjwvdWw+