PHP: у этого кода проблемы с производительностью?Может быть улучшена? - PullRequest
0 голосов
/ 21 сентября 2011

Я пытаюсь улучшить SEO своего сайта.Я хотел бы добавить текст в мои URL.Я пытаюсь добавить информацию в URL.Я получаю «название продукта» (или название) из элемента и добавляю его в URL.Итак, если «Core 2 Duo 8600 CPU» имеет идентификатор 10, старый URL-адрес был:

example.com/cpu/10

Теперь я хочу добавить название продукта, поэтому оно будет:

example.com/cpu/10/core-2-duo-8600-CPU/

Проблема в том, что я не хочу, чтобы там были специальные символы и слова с акцентом (это испанский сайт), поэтому я создал эту функцию:

function makeFriendlyURL($string){
        $search = explode(",","ç,æ,œ,á,é,í,ó,ú,à,è,ì,ò,ù,ä,ë,ï,ö,ü,ÿ,â,ê,î,ô,û,å,e,i,ø,u");
        $replace = explode(",","c,ae,oe,a,e,i,o,u,a,e,i,o,u,a,e,i,o,u,y,a,e,i,o,u,a,e,i,o,u");
        $string = str_replace($search, $replace, $string);
        $string = preg_replace("/[^A-Za-z0-9]/"," ",$string);
        $string = preg_replace('/\s+/', '-',trim($string)); 
        return strtolower($string);
    }
makeFriendlyURL('Técnico electricista') //tecnico-electricista  (accented é is replaced with e)
makeFriendlyURL('RAM 1066/1333') // ram-1066-1333 (striped the slash and lowercase "RAM")

Теперь, видите ли вы какую-то проблему?Я думаю, что это можно улучшить, но не знаю как.

1 Ответ

2 голосов
/ 21 сентября 2011

Можно ли улучшить этот код?

В этих ситуациях легче определить, что вы хотите, чем то, что вы не хотите, так как это список всех изменений.

Это типичный код, который создаст слаг из заголовка:

// translate accented chars
$search = explode(",","ç,æ,œ,á,é,í,ó,ú,à,è,ì,ò,ù,ä,ë,ï,ö,ü,ÿ,â,ê,î,ô,û,å,e,i,ø,u");
$replace = explode(",","c,ae,oe,a,e,i,o,u,a,e,i,o,u,a,e,i,o,u,y,a,e,i,o,u,a,e,i,o,u");
$string = str_replace($search, $replace, $string);

// create slug by replacing non-alphanumeric chars with a dash
$slug = trim(preg_replace('/[^a-z0-9]+/', '-', strtolower($string)), '-');

Примечание: в качестве URL, я добавил strtolower(). Не стесняйтесь удалить его, если вы действительно хотите, чтобы в вашем URL были прописные буквы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...