Удаление одинарных кавычек в переполнении стека

У меня возникли проблемы при попытке вставить некоторые данные из документа php, пока я не получил 2 значения, которые содержат кавычки внутри, например:

«Rempli d’étoiles»

я хотел бы удалить ‘пробел или даже ничего.

-> «Rempli d etoiles» Вот мое, что я пытался:

$posdeapostrophe = strpos($array, '\'');
if ($posdeapostrophe == false)
{
...
}
else
{
// it goes in this block when it detects a ', but seems like trim doesnt work as i would

$newchaine =  trim($array, '\'');
$sql .=  "INSERT INTO categorie (id_cat,name_cat) VALUES (" . $cpt . ",'" .$newchaine . "'); ";

Спасибо!

1

Решение

Ты можешь использовать str_replace(),

$array = "Some string's";
$posdeapostrophe = strpos($array, "'");
$val = '';
if ($posdeapostrophe !== false)
{
$val = str_replace("'", "\'", $array);
}
echo $val;

Также можно использовать вместо strpos() а также replace() избежать одинарных кавычек.

mysqli_real_escape_string($con, $array ); //for mysqli
mysql_real_escape_string($array , $con); //for mysql
0

Другие решения

То, что вы сейчас делаете, довольно опасно.

Прежде всего, вы должны действительно использовать текущий рекомендуемый метод для выполнения запросов, который использует PDO: http://php.net/manual/en/book.pdo.php

Это и решит проблему с кавычками, и огромную дыру в безопасности (уязвимость SQLi), которую вы в настоящее время внедрили в свой код.

Если вы все еще хотите заменить одинарные кавычки в вашем тексте, вы действительно можете сделать то, что предложил @scrowler:

$your_string = str_replace("'", "", $your_string);

Но, пожалуйста, используйте PDO при взаимодействии с базой данных, так как это действительно единственный (безопасный и рекомендуемый) способ сделать это.

0

По вопросам рекламы [email protected]