Разделить строку на символы

<?php
$chars = preg_split('//u', $string);

Склонение числительных в русском языке

<?php
function decl_int($number, $titles){
    $cases = array(2, 0, 1, 1, 1, 2);
    return sprintf($titles[($number%100>4 && $number%100<20) ? 
                           2 : 
                           $cases[min($number%10, 5)]],
                   $number);
}

foreach(array(0, 1, 2, 5) as $v)
        echo decl_int($v, array('%s пользователь',
                                '%s пользователя',
                                '%s пользователей'))."\n";
0 пользователей
1 пользователь
2 пользователя
5 пользователей

Дополнение символами в printf/sprintf

<?php
$s = 'monkey';
$t = 'many monkeys';

printf("[%s]\n",      $s); // просто распечатать
printf("[%10s]\n",    $s); // дополнить пробелами слева
printf("[%-10s]\n",   $s); // дополнить пробелами справа
printf("[%010s]\n",   $s); // дополнить слева нулями
printf("[%'#10s]\n",  $s); // дополнить символом решетки
printf("[%10.10s]\n", $t); // обрезать до 10 символов 
[monkey]
[    monkey]
[monkey    ]
[0000monkey]
[####monkey]
[many monke]

У explode имеется ещё и третий аргумент. В зависимости от того - положительный он или отрицательный - поведение основательно изменяется. Отрицательный аргумент - отбрасывает результаты с конца возвращаемого массива.

<?php
$str = 'one|two|three|four';
print_r(explode('|', $str, 2));
print_r(explode('|', $str, -1));
Array
(
    [0] => one
    [1] => two|three|four
)
Array
(
    [0] => one
    [1] => two
    [2] => three
)

Экранировать кавычки в строке

<?php
foreach(array("'", '"', chr(0)) as $v)
    echo addslashes($v)."\n";
\'
\"
\0

Нечеткое сравнение строк

/**
* Функция нечеткого сравенения строк
* выдает % совпадения двух строк.
* Для получения наилучшего результата, нужно поиграться с параметрами
* minLen и maxLen - от них зависит точность совпадения
* @param string $x первая строка
* @param string $y вторая строка
* @param string $minLen минимальный размер подстроки для сравнения - рекомендуется 1 или 2
* @param string $maxLen масимальный размер подстроки для сравнения - рекомендуется 
*  не более трети длины минимальной из строк. 
*  Если не задать - будет равна длине минимальнйо строки
* @return float возвращает процент совпадения строк
*/
function fuzzy_compare($x,$y,$minLen=1,$maxLen=0)
{  
  $l1 = strlen($x);
  $l2 = strlen($y);
  if ($maxLen ==0 ) $maxLen = min($l1,$l2);  
  $summ = 0;
  $count = 0;  
  for($l = $minLen; $l<=$maxLen;$l++)
  {
    for ($i = 0; $i< ($l1 - $l); $i++)
    {
      $part = substr($x,$i,$l);      
      $count ++;
      if (strpos($y,$part)!==FALSE) $summ++;
    }      
  }  
  return 100*$summ/$count;
}

//Пример:
echo fuzzy_compare("Привет медведь","Превед медвед",1,4)
73.469387755102

Преобразование строки к верблюжейНотацииЗаписиИмен (camelCase)

/**
* @param string $name имя разделеное подчеркиваниями, например user_first_name
* @return string имя в формате camelCase, например userFirstName
*/
function toCamelCase($name) {
  $parts = explode("_",$name);
  foreach ($parts as $num=>&$part) {
    if ($num == 0){
      $part = strtolower($part);
    }
    else{
      $part = ucfirst($part);
    }            
  }
  return implode($parts);        
}

echo toCamelCase('user_phones_to_users_link');
userPhonesToUsersLink
-----------
-----------