Ох вже ці лапки!

З «ялинками» не все так просто, як іноді здається. Код для автозаміни лапок я змінюю вже третій чи четвертий раз:) От вчора людині підказав як треба , але ж неправильно підказав! Приношу свої вибачення і публікую начебто вже зовсім правильний варіант, хоч і не дуже красивий.

 

Як було в останній раз?

 

$ text = preg_replace ("/ " ([^ "] +) "/u "," "$ 1" ", $ text);

 

Проблема такого рішення в тому, що вона замінить на «ялинки» навіть лапки для значень атрибутів у HTML-коді. Якщо HTML в $ text не планується, то нормально, хоча тут дурні зайві слеш.

 

Правильний варіант

 

$ text = preg_replace ('/([^=])"([^"]+[^=])"/ u ', "$ 1" $ 2 "",'-'.$ text);
$ Text = mb_substr ($ text, 1);

 

До вхідної змінної $ text додається незначущий символ «-», щоб вираз спрацювало навіть для лапок, що стоять на самому початку рядка. А після цей символ забирається через mb_substr. Тут ще не показано вказівку кодування для mb_substr, якщо ваші скрипти не в UTF-8, тоді напевно вираз може спрацювати неправильно. У Daos для гарантії у index.php прописана така рядок: mb_internal_encoding ('UTF-8');

Опубліковано: 25/02/11 @ 01:58
Розділ Різне

Рекомендуємо:

Ніколи не пізно
Проблеми з плагінів WP-Email
Накрутка підказок у Яндексі
Установка WordPress на хостинг і первинна настройка - докладне керівництво
Пошукачі жартують.