/** 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; }
/** * 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; }
function remove_accent($str) { return URLify::downcode($str); }
function test_many_rounds_with_unknown_language_code() { for ($i = 0; $i < 1000; $i++) { URLify::downcode('Lo siento, no hablo español.', -1); } }
<?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" : "");
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('á' => 'á', 'à' => 'à', 'ä' => 'ä', 'Á' => 'Á', 'À' => 'À', 'â' => 'â', 'Â' => 'Â', 'ã' => 'ã', 'Ã' => 'Ã', 'Ä' => 'Ä', 'Ç' => 'Ç', 'ç' => 'ç', 'é' => 'é', 'É' => 'É', 'è' => 'è', 'È' => 'È', 'ê' => 'ê', 'Ê' => 'Ê', 'ë' => 'ë', 'Ë' => 'Ë', 'ü' => 'ü', 'Ü' => 'Ü', 'û' => 'û', 'Û' => 'Û', 'ú' => 'ú', 'Ú' => 'Ú', 'ù' => 'ù', 'Ù' => 'Ù', 'ó' => 'ó', 'Ó' => 'Ó', 'ò' => 'ò', 'Ò' => 'Ò', 'ô' => 'ô', 'Ô' => 'Ô', 'ö' => 'ö', 'Ö' => 'Ö', 'ß' => 'ß', 'ÿ' => 'ÿ')); $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!'); } }