2016-06-01 5 views
0

Я хочу заменить < и > в php-строку перед вставкой в ​​базу данных, поэтому, когда пользователь вводит код, он не выполняет свою функцию, поэтому я сделал это:Как заменить некоторые тексты в строке php

$comment = str_replace("<", "&lt;", $comment); 
$comment = str_replace(">", "&gt;", $comment); 

Но у меня также есть что-то подобное в строке <3msg, которую я не хочу заменять. Как мне запустить мой код.

+0

Почему вы хотите заменить его перед тем, как положить его в дБ? – nospor

+0

у вас есть [htmlentities] (http://php.net/manual/en/function.htmlentities.php) за это право? попробуйте [strip_tags] (http://php.net/manual/en/function.strip-tags.php) – Thamilan

+0

@nospor ... как я уже сказал, когда пользователь передает код в строку, я не хочу код, который должен быть выполнен, когда я повторяю его из db –

ответ

1

Используйте как этот

$comment = str_replace("<", "&#60;", $comment); 
$comment = str_replace(">", "&#62;", $comment); 
$comment = str_replace("&#60;3msg", "<3msg", $comment); 
0

Если у вас есть один символ в разных местах, вы должны быть более, для Удельный например символов, которые всегда рядом с этим или что-то другое. В противном случае вам не повезло, так как вы должны точно идентифицировать символ, который вы хотите заменить. Для сценария aboce существует функция htmlspecialchars (Link)

Если вы хотите быть уверенным в том, что ничто не мешает вашему запросу, и никаких атак на SQL-инъекцию не может возникнуть, я предлагаю вам использовать подготовленные заявления так часто, как вы можете. Вы можете прочитать mor об этом here, и если этого недостаточно, я могу привести примеры для этого.

0

Если вы хотите, чтобы дезинфицировать ввод базы данных, чтобы удалить скрипты и т.д., то вы можете использовать strip_tags так:

$comment = strip_tags($comment) 

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

0

Попробуйте это:

использованияКонтактная функции PHP:

htmlspecialchars($comment); 
0

Here См.

вы можете использовать htmlentities() для достижения вашего результата.

$str = "A 'quote' is <b>and</b>"; 

// Outputs: A 'quote' is &lt;b&gt;bold&lt;/b&gt; 
echo htmlentities($str); 

// Outputs: A &#039;quote&#039; is &lt;b&gt;bold&lt;/b&gt; 
echo htmlentities($str, ENT_QUOTES); 

PS

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

Смежные вопросы