PHP
AeroSQL an alternative to phpMyAdmin
0
Another really useful item from Oleg Burlaca. AreoSQL is a free web based database management solution which, given some development could be a decent replacement for the awful phpMyAdmin. I say awful, phpMyAdmin is in a lot of ways actually a pretty good tool, however it's also notorious for going wrong when you least expect it and, to be honest needs a throrough interface overhaul. AreoSQL doesn't provide anything like the level of functionality that phpMyAdmin does (yet) BUT the interface is better, especially for people who like to use a componentised view of databases as a lot desktop app's provide. Overall I personally don't think it's going to beat other projects like Chive ( chive-project.com ) to being an immediate successor to phpMyAdmin but it's certainly an alternative to be considered...
More here: AeroSQL an alternative to phpMyAdmin
Handling CType Data With SimpleXML in PHP
0If you're new to SimpleXML then the output and representation of complex XML data produced by the library can be daunting and sometimes confusing, but once you're used to it, SimpleXML is a massively useful tool for processing XML information.
When debugging other people's implementations of simpleXML however, one of the biggest issues I come across time and again is the apparent loss of CType data from the processed feed.
Luckily this is very easily remedied, but not well documented so here's how to deal with it.
PHP 5.1.0 introduced the options parameter to functions such as simplexml_load_string() which allows you to specify additional paramters to Libxml the underlying library PHP uses to interpret XML.
The default Libxml setting ignores any data in CType blocks, but you can override this behaviour by passing the LIBXML_NOCDATA option to the function.
In other words, in cases where you might usually do this to load some xml data and not find the CType fields in the resulting object:
$xml = simplexml_load_string($feed);
Doing this instead, will allow the CType fields to be added to the object and used in your scripts where you need to
$xml = simplexml_load_string($feed, NULL, LIBXML_NOCDATA);
Unfortunately the options parameter is the 3rd in the list, and 9 times out of 10 the second option (which is the name that's given to the class containing the parsed xml) doesn't need to be changed/overridden so I personally choose to pass NULL in as the second option, though you can enter whatever you like here.
It's as easy as that - I hope you found this note useful
ctype_digit rtfm!
1For the last 5-10 minutes I've been wondering why a check on a variable which should be valid has been returning false.
The check is ctype_digit, which returns true if all characters in a string are digits.
So if $var = 1;, you might expect it to return true, but it doesn't.
Why not? Well, as the PHP manual states, this function acts on strings not integers.
Therefore checking something that has been specifically set as an integer (as in the example above) or typecast to be an integer at some point (as is my case) ctype_digit will fail as the data it is checking is not a string in the first place!
So there you go. Although 99% of data handled in PHP is in string form at some point, and therefore a ctype_digit check is generally completely valid, in some special cases it might be worth combining a ctype_digit() check with a preceding is_string() check depending on your application.
Rant over...