#php #replace
#php #заменить
Вопрос:
У меня есть это в JavaScript:
msg = msg.replace(/(:)|=)|:-)|(:)/gi, "<img src='img/ei/1.png' class='ei' />");
Есть ли аналогичный способ, которым я могу это сделать, но на PHP?
Заранее спасибо, энджи
Ответ №1:
Точно так же:
$msg = preg_replace('/(:)|=)|:-)|(:)/i', "<img src='img/ei/1.png' class='ei' />", $msg);
Комментарии:
1. @enjikaka если ответ сработал, подумайте о том, чтобы принять его, чтобы в следующий раз, когда кто-то будет искать проблему такого типа, он мог быстро ее заметить.
2. Я пытался до того, как вы отправили сообщение, но это было до того, как это позволило мне (5 минут еще не прошло): P
3. @enjikaka: Для этого вам даже не нужно регулярное выражение. Смотрите ответ Шая Мишали. Старайтесь избегать регулярных выражений, когда можете, их трудно читать, и они медленные.
4. @greg0ire так что его будет быстрее?
Ответ №2:
Если я правильно понимаю, вы пытаетесь заменить экземпляры : smiley изображением. Вы могли бы сделать что-то вроде этого:
<?php
$str = "Hey there :)";
str_replace(
array(":)", "=)", ":-)", "(:"),
"<img src='img/ei/1.png' class='ei' />",
$str);
?>
Шай.
Комментарии:
1. Обратите внимание: это регулярное выражение, » используется для экранирования зарезервированных символов, таких как ‘)’.
2. Тем не менее, решение будет работать таким же образом только для 🙂 , =), 🙂 и 🙂
3. Вы пропустили смайлик «(:» в вашем выражении.
4. Deejavy, я думаю, что «Техника» достаточно понятна, Stackoverflow — это не написание кода для людей, это помощь им понять, какие методы использовать в их коде.
5. Регулярное выражение всегда считается немного «Медленнее», и я не думаю, что для такой простой операции оно вам действительно понадобится.