downcode() public static method

$language specifies a priority for a specific language. The latter is useful if languages have different rules for the same character.
public static downcode ( $text, $language = "" )
Beispiel #1
0
 /** Takes text and converts it to an ASCII-only string (characters with code between 32 and 127, plus \t, \n and \r).
  * @param string $text The text to be converted.
  * @param string $locale='' The locale for the string. If not specified we consider the current locale.
  * @return string
  */
 public function asciify($text, $locale = '')
 {
     if (!strlen($locale)) {
         $locale = \Localization::activeLocale();
     }
     $language = substr($locale, 0, strcspn($locale, '_'));
     $text = \URLify::downcode($text, $language);
     if (preg_match('/[^\\t\\r\\n\\x20-\\x7e]/', $text)) {
         if (function_exists('iconv')) {
             $t = @iconv(APP_CHARSET, 'US-ASCII//IGNORE//TRANSLIT', $text);
             if (is_string($t)) {
                 $text = $t;
             }
         }
         $text = preg_replace('/[^\\t\\r\\n\\x20-\\x7e]/', '', $text);
     }
     return $text;
 }
Beispiel #2
0
/**
 * Returns a "safe" version of the given string - basically only US-ASCII and
 * numbers. Needed because filenames and titles and such, can't use all characters.
 *
 * @param string $str
 * @param boolean $strict
 * @param string $extrachars
 * @return string
 */
function safeString($str, $strict = false, $extrachars = "")
{
    $str = URLify::downcode($str);
    $str = str_replace("&", "", $str);
    $delim = '/';
    if ($extrachars != "") {
        $extrachars = preg_quote($extrachars, $delim);
    }
    if ($strict) {
        $str = strtolower(str_replace(" ", "-", $str));
        $regex = "[^a-zA-Z0-9_" . $extrachars . "-]";
    } else {
        $regex = "[^a-zA-Z0-9 _.," . $extrachars . "-]";
    }
    $str = preg_replace($delim . $regex . $delim, '', $str);
    return $str;
}
Beispiel #3
0
function remove_accent($str)
{
    return URLify::downcode($str);
}
Beispiel #4
0
 function test_many_rounds_with_unknown_language_code()
 {
     for ($i = 0; $i < 1000; $i++) {
         URLify::downcode('Lo siento, no hablo español.', -1);
     }
 }
Beispiel #5
0
<?php

//Downcode the provided argument or stdin if the argument was not present
require_once dirname(__DIR__) . '/URLify.php';
//Print usage and exit if arguments are invalid
if ($argc < 1 || $argc > 2) {
    die("Usage (argument): php " . basename(__FILE__) . " \"<text to downcode>\"\nUsage (pipe): <Arbitrary command> | php " . basename(__FILE__) . "\n");
}
//Process the provided argument
if ($argc === 2) {
    $s = $argv[1];
    //Or read from stdin if the argument wasn't present
} else {
    $piped = true;
    $s = file_get_contents("php://stdin");
}
echo URLify::downcode($s) . ($piped ? "\n" : "");
Beispiel #6
0
 function test_add_chars()
 {
     $this->assertEquals('¿ ® ¼ ¼ ¾ ¶', URLify::downcode('¿ ® ¼ ¼ ¾ ¶'));
     URLify::add_chars(array('¿' => '?', '®' => '(r)', '¼' => '1/4', '¼' => '1/2', '¾' => '3/4', '¶' => 'P'));
     $this->assertEquals('? (r) 1/2 1/2 3/4 P', URLify::downcode('¿ ® ¼ ¼ ¾ ¶'));
 }
 public function post_edit_marker($id)
 {
     $input = Input::all();
     $file = Input::file('img_input');
     $rules = array('name' => 'required|max:150', 'address' => 'required|max:200', 'lat' => 'required|numeric', 'lng' => 'required|numeric', 'type' => 'required|alpha', 'img_input' => 'mimes:jpg,gif,png,jpeg|image');
     $v = Validator::make($input, $rules);
     if ($v->fails()) {
         return Redirect::to_action('home@edit_marker/' . $id)->with_errors($v);
     } else {
         // save thumbnail
         if (!empty($file['name'])) {
             $success = Resizer::open($file)->resize(120, 100, 'landscape')->save('public/img/uploads/' . $file['name'], 90);
         }
         URLify::add_chars(array('á' => '&aacute;', 'à' => '&agrave;', 'ä' => '&auml;', 'Á' => '&Aacute;', 'À' => '&Agrave;', 'â' => '&acirc;', 'Â' => '&Acirc;', 'ã' => '&atilde;', 'Ã' => '&Atilde;', 'Ä' => '&Auml;', 'Ç' => '&Ccedil;', 'ç' => '&ccedil;', 'é' => '&eacute;', 'É' => '&Eacute;', 'è' => '&egrave;', 'È' => '&Egrave;', 'ê' => '&ecirc;', 'Ê' => '&Ecirc;', 'ë' => '&euml;', 'Ë' => '&Euml;', 'ü' => '&uuml;', 'Ü' => '&Uuml;', 'û' => '&ucirc;', 'Û' => '&Ucirc;', 'ú' => '&uacute;', 'Ú' => '&Uacute;', 'ù' => '&ugrave;', 'Ù' => '&Ugrave;', 'ó' => '&oacute;', 'Ó' => '&Oacute;', 'ò' => '&ograve;', 'Ò' => '&Ograve;', 'ô' => '&ocirc;', 'Ô' => '&Ocirc;', 'ö' => '&ouml;', 'Ö' => '&Ouml;', 'ß' => '&szlig;', 'ÿ' => '&yuml;'));
         $marker = Marker::where('id', '=', $id)->first();
         $marker->name = URLify::downcode($input['name']);
         $marker->address = URLify::downcode($input['address']);
         $marker->lat = $input['lat'];
         $marker->lng = $input['lng'];
         $marker->type = $input['type'];
         $marker->user_id = Auth::user()->group == 2 ? Auth::user()->id : $input['client'];
         $marker->rem1 = URLify::downcode(Input::get('rem1', ''));
         $marker->rem2 = URLify::downcode(Input::get('rem2', ''));
         $marker->rem3 = URLify::downcode(Input::get('rem3', ''));
         $marker->rem4 = URLify::downcode(Input::get('rem4', ''));
         $marker->rem5 = URLify::downcode(Input::get('rem5', ''));
         if (!empty($file['name'])) {
             $marker->img_url = '/img/uploads/' . $file['name'];
         }
         $marker->save();
         return Redirect::to_action('home@edit_marker/' . $id)->with('message', 'Marker updated!');
     }
 }