Enhance SEO function to improve string sanitization and formatting
This commit is contained in:
@@ -999,26 +999,49 @@ class S
|
|||||||
|
|
||||||
public static function seo($val, $delete_rhombs = false)
|
public static function seo($val, $delete_rhombs = false)
|
||||||
{
|
{
|
||||||
|
// Zamiana niełamiącej spacji na zwykłą
|
||||||
$val = preg_replace('/\xc2\xa0/', ' ', $val);
|
$val = preg_replace('/\xc2\xa0/', ' ', $val);
|
||||||
|
|
||||||
$array_rep1 = array( '*', '_', ' ', '+', '"', "'", '?', '-', ',', '!', '~', '<', '>', '@', '#', '$', '%', '^', '&', '*' . '(', ')' . '-', '=', '\\', '|', '[', ']', ':', '(', ')', '–', '•', ' ' );
|
// Podstawowe zamiany znaków specjalnych
|
||||||
$array_rep2 = array( '-', '-', '-', '-', '', '', '', '-', '-', '', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '' );
|
$array_rep1 = array(
|
||||||
|
'*', '_', ' ', '+', '"', "'", '?', '-', ',', '!', '~', '<', '>', '@', '#',
|
||||||
|
'$', '%', '^', '&', '*', '(', ')', '-', '=', '\\', '|', '[', ']', ':', '(', ')',
|
||||||
|
'–', '•', ' '
|
||||||
|
);
|
||||||
|
$array_rep2 = array(
|
||||||
|
'-', '-', '-', '-', '', '', '', '-', '-', '', '-', '-', '-', '-', '-', '-',
|
||||||
|
'-', '-', '-', '-', '-', '', '-', '-', '-', '-', '-', '-', '-', '-', '-', '', ''
|
||||||
|
);
|
||||||
|
|
||||||
|
// Usuwanie polskich znaków
|
||||||
$val = \front\factory\Globelus::noPl($val);
|
$val = \front\factory\Globelus::noPl($val);
|
||||||
|
|
||||||
|
// Zamiana popularnych znaków na myślniki lub pusty ciąg
|
||||||
$val = str_replace($array_rep1, $array_rep2, $val);
|
$val = str_replace($array_rep1, $array_rep2, $val);
|
||||||
|
|
||||||
if ( $delete_rhombs )
|
// Opcjonalne usunięcie ukośników
|
||||||
|
if ($delete_rhombs) {
|
||||||
$val = str_replace('/', '', $val);
|
$val = str_replace('/', '', $val);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Usunięcie wszystkich znaków poza literami, cyframi i myślnikami
|
||||||
|
// (np. emotki, inne znaki Unicode, itd.)
|
||||||
|
$val = preg_replace('/[^a-zA-Z0-9\-]/u', '', $val);
|
||||||
|
|
||||||
|
// Konwersja na małe litery
|
||||||
$val = strtolower($val);
|
$val = strtolower($val);
|
||||||
|
|
||||||
|
// Redukcja wielokrotnych myślników do jednego
|
||||||
$val = preg_replace('/(-){2,}/', '-', $val);
|
$val = preg_replace('/(-){2,}/', '-', $val);
|
||||||
|
|
||||||
|
// Usunięcie myślników z początku i końca
|
||||||
$val = ltrim($val, '-');
|
$val = ltrim($val, '-');
|
||||||
$val = rtrim($val, '-');
|
$val = rtrim($val, '-');
|
||||||
|
|
||||||
return $val;
|
return $val;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static function noPL( $val )
|
public static function noPL( $val )
|
||||||
{
|
{
|
||||||
$table = array(
|
$table = array(
|
||||||
|
|||||||
Reference in New Issue
Block a user