Ограничить время выполнения скрипта 2 секундами и вывести на экран только первые 2000 символов

<?php 
set_time_limit(2);
register_shutdown_function('shutdown');
ob_start(); 
/*
 * echo ...
 */
function shutdown () {
	echo substr(ob_get_clean(), 0, 2000);
}

Враппер для удобного использования ob_* функций

<?php
function ob($fn){
    ob_start();
    $fn();
    return ob_get_clean();
}

$v = ob(function(){
        echo "Hello, world!";
});

echo ">$v<";
>Hello, world!<

Замерить время выполнения участка кода

<?php
function bench($fn){
    $start = microtime(true);
    $fn();
    return microtime(true) - $start;
}
echo bench(function(){ sleep(1); });
1.0001661777496

Распечатать информацию о переменной. В отличии от print_r, echo - var_dump нормально печатает булевы значения

<?php
$a = array(1, 2, array("a", "b", "c"));
var_dump($a);
array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  array(3) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "b"
    [2]=>
    string(1) "c"
  }
}
$b = 3.1;
$c = true;
var_dump($b, $c);
float(3.1)
bool(true)

Включение отображения ошибок

<?php
ini_set('display_errors', 1); 
error_reporting(E_ALL);

Расширенная версия функции print_r, позволяет выводить массив до определенной глубины, а не полностью

/**
*  Функция аналог print_r, за исключением того что выводит не всю глубину
*  массива или объекта, а только указанную, возвращая строку с выводом.
*
*  @param any $v переменная для вывода
*  @param integer $maxdepth максимальная глубина, 
*     если $maxdepth < 0 - то глубина будет неограниченной
*  @param integer  $prepend_spaces количество пробелов перед строкой 
*     с текстом. Как правило использовать не нужно, будет работать само.
*  @return string возвращает строку (в отличии от print_r не делает echo)
*/ 
function print_r_slice($v,$maxdepth=-1,$prepend_spaces=0)
{
  $result = '';
  if (is_array($v) || is_object($v))
  {
    if ($maxdepth!=0)
      {
        foreach($v as $key=>$val)
        {
          $result .=  "\n".str_repeat(' ',$prepend_spaces) . ("[" . $key
      	    . "] => " . print_r_slice($val,$maxdepth-1,
      	    $prepend_spaces  +  strlen($key) + 6)  );
        }
      }
      else
      {	$result .=  " Array() ";   }
  }
  else
  {   $result .= $v; }
return $result;
}

Простая функция для замера скорости выполнения участков кода.

/**
*  Простая функция для замера скорости выполнения участков кода.
*  Для использования - написать tick_time("Операция такая-то") до начала измеряемого куска кода
*  и tick_time("Следующая операция") или tick_time() после конца участка кода. В результате будет выведено
*  количество секунд выполнения с точностью до 4-го знака.
*  Пример:
*  tick_time("Сканируем данные");
*  scan_data();
*  tick_time("Загружаем файл");
*  load_file();
*  tick_time("Анализируем информацию");
*  $analyzer->dataAnalyze();
*  tick_time();
*  Выдаст в консоль (или в браузер)
*  @param string $message - название операций которую мы измеряем. Используется просто для того чтобы знать.
*/ 
function tick_time($message=""){
  static $lastMessage;
  static $startTime;
  if ($startTime){
      echo "\n " . $lastMessage . ": " . ((int)((microtime(true) - $startTime)*10000))/10000 . "\n";
  }
  $startTime = microtime(true);
  $lastMessage = $message;
}
-----------