删除PHP中的单引号

时间:2014-11-12 02:49:12

标签: php quotes

我在尝试从php文档中插入一些数据时遇到了一些问题,直到我得到2个包含引号的值,如:

“Rempli'é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 . "'); ";

谢谢!

2 个答案:

答案 0 :(得分:0)

您可以使用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

答案 1 :(得分:0)

你目前正在做的事情非常危险。

首先,您应该使用当前推荐的方法来执行使用PDO的查询:http://php.net/manual/en/book.pdo.php

这将解决您的代码中当前引入的引号问题和大量安全漏洞(SQLi漏洞)。

如果您仍想替换文本中的单引号,您确实可以执行@scrowler建议的内容:

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

但是在与数据库交互时请使用PDO,因为这实际上是唯一(安全和推荐)的方式。