Dealing with cookies
if (!$_COOKIE["blah"]) {
$cookie = 1;
}
else {
$cookie = $_COOKIE["blah"];
}
echo "cookie now $cookie";
setcookie("blah", $cookie+1) or die("can't set cookie");
(might want to set the
output_buffering = On setting in
php.ini too so you can set cookies anywhere in your script)
Enumerating An Array
$all_users = get_all_user_ids(); // returns array as $all_user[id] = username;
if (!$all_users) {
echo "no users in database!";
return;
}
foreach (array_keys($all_users) as $user_id) {
echo "$all_users[$user_id] ($user_id)<BR>";
}
Forcing an output buffer flush
Just do an
ob_flush() each time you want output to go out. If you have
output_buffering enabled, this seems to override its behavior.
Scanning a directory
<?
/* pass 'null' for mask to not filter anything out
*/
function read_dir($dir, $mask, $files) {
if (!is_dir($dir)) {
return null;
}
echo "$dir";
$path = opendir($dir);
$dirs = null;
while (false !== ($file = readdir($path))) {
if($file!="." && $file!="..") {
if(is_file($dir."/".$file)) {
if ($mask == null || eregi($mask, $file)) {
if ($dir != ".") {
$files[]=$dir."/".$file;
} else {
$files[]=$file;
}
}
}
else {
if ($dir != ".") {
$dirs[]=$dir."/".$file;
} else {
$dirs[]=$file;
}
}
}
}
if($dirs) {
natcasesort($dirs);
foreach($dirs as $dir) {
$files += read_dir($dir, $mask, $files);
}
}
if($files) {
natcasesort($files);
}
closedir($path);
return $files;
}
?>
Making errors appear in the output
in
/etc/php.ini,
- set
display_errors = On
- set
display_startup_errors = On
--
MattWalsh - 12 Feb 2006