Snippets

15 usefull regex

http://www.catswhocode.com/blog/15-php-regular-expressions-for-web-developers

Convert relative to absolute URL

Certainly the best and safer way
- http://nadeausoftware.com/node/79

the way it simply works

- from http://www.howtoforge.com/forums/showthread.php?t=4

function absolute_url($txt, $base_url){
  $needles = array('href="', 'src="', 'background="');
  $new_txt = _;
  if(substr($base_url,-1) != '/') $base_url .= '/';
  $new_base_url = $base_url;
  $base_url_parts = parse_url($base_url);

  foreach($needles as $needle){
    while($pos = strpos($txt, $needle)){
      $pos += strlen($needle);
      if(substr($txt,$pos,7) != 'http://' && substr($txt,$pos,8) != 'https://' && substr($txt,$pos,6) != 'ftp://' && substr($txt,$pos,9) != 'mailto://'){
        if(substr($txt,$pos,1) == '/') $new_base_url = $base_url_parts['scheme'].'://'.$base_url_parts['host'];
        $new_txt .= substr($txt,0,$pos).$new_base_url;
      } else {
        $new_txt .= substr($txt,0,$pos);
      }
      $txt = substr($txt,$pos);
    }
    $txt = $new_txt.$txt;
    $new_txt = _;
  }
  return $txt;
}  

Remove trailing whitespaces

http://jimbojw.com/wiki/index.php?title=How_to_find_PHP_files_with_trailing_whitespace

Command Line :

echo '<?php foreach (glob("**/*.php") as $file){if (preg_match( "/\\?".">\\s\\s+\\Z/m", file_get_contents($file))) echo("$file\n");} ?>' | php

PHP file script :

<?php
foreach (glob('**/*.php') as $file){
  if (preg_match('/\\?'.'>\\s\\s+\\Z/m',file_get_contents($file)))
    echo("$file\n");
}
?>

Remove .svn folders under Windows

for /r repository %f in (.svn) do rd /S /Q "%f" 

from : http://www.jonathan-petitcolas.com/fr/supprimer-recursivement-les-dossiers-svn-sous-windows/

Ignore specific subfolders in .htaccess (URL rewrite)

Method 1 :

  [[RewriteEngine]] on
  #
  # stuff to let through (ignore)
  [[RewriteCond]] %{REQUEST_URI} "/folder1/" [OR]
  [[RewriteCond]] %{REQUEST_URI} "/folder2/" 
  [[RewriteRule]] (.*) $1 [L]
  #

Method 2 :

[[RewriteEngine]] On
[[RewriteBase]] /
Rewritecond  %{REQUEST_URI} !^/linea21/.*$ [NC]
[[RewriteCond]] %{REQUEST_FILENAME} !-f
[[RewriteCond]] %{REQUEST_FILENAME} !-d
[[RewriteRule]] . /index.php [L]

(Ignore rules for linea21 sub-folder)