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

Topic revision: r4 - 24 Jan 2007 - MattWalsh
 
This site is powered by the TWiki collaboration platformCopyright © 2008-2012 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback