brianmwadime
1/1/2014 - 2:57 PM

convert_ascii.php

<?php
/**
 * Remove any non-ASCII characters and convert known non-ASCII characters 
 * to their ASCII equivalents, if possible.
 *
 * @param string $string 
 * @return string $string
 * @author Jay Williams <myd3.com>
 * @license MIT License
 * @link http://gist.github.com/119517
 */
function convert_ascii($string) 
{ 
  // Replace Single Curly Quotes
  $search[]  = chr(226).chr(128).chr(152);
  $replace[] = "'";
  $search[]  = chr(226).chr(128).chr(153);
  $replace[] = "'";

  // Replace Smart Double Curly Quotes
  $search[]  = chr(226).chr(128).chr(156);
  $replace[] = '"';
  $search[]  = chr(226).chr(128).chr(157);
  $replace[] = '"';

  // Replace En Dash
  $search[]  = chr(226).chr(128).chr(147);
  $replace[] = '--';

  // Replace Em Dash
  $search[]  = chr(226).chr(128).chr(148);
  $replace[] = '---';

  // Replace Bullet
  $search[]  = chr(226).chr(128).chr(162);
  $replace[] = '*';

  // Replace Middle Dot
  $search[]  = chr(194).chr(183);
  $replace[] = '*';

  // Replace Ellipsis with three consecutive dots
  $search[]  = chr(226).chr(128).chr(166);
  $replace[] = '...';

  // Apply Replacements
  $string = str_replace($search, $replace, $string);

  // Remove any non-ASCII Characters
  $string = preg_replace("/[^\x01-\x7F]/","", $string);

  return $string; 
}
?>