Эта функция предназначена для дезинфекции заданного значения, но вместо этого выводит «n-a», как если бы не было указано значение. Это должен быть самый простой вопрос, но в этот момент он меня победил.Почему моя функция PHP не возвращает значение?
function slug($text){
// replace non letter or digits by -
$text = preg_replace('~[^pLd]+~u', '-', $text);
// trim
$text = trim($text, '-');
// transliterate
$text = iconv('utf-8', 'us-ascii//TRANSLIT', $text);
// lowercase
$text = strtolower($text);
// remove unwanted characters
$text = preg_replace('~[^-w]+~', '', $text);
if (empty($text))
{
return 'n-a';
}
return $text;
}
Буду признателен за ввод.
** Где ** это становится пустым? Вы пытались сбросить переменную, когда идете? (после замены после обрезки после strtolower после второй замены) – h2ooooooo
'$ text = preg_replace ('~ [^ - w] + ~', '', $ text);' это удаляет все, кроме '-' и' w'. Я думаю, что в вашей строке нет '-' или' w'. поэтому вы получаете пустую строку. попробуйте переписать regex здесь – krishna