删除PHP中的引号

删除PHP中的引号,php,Php,在我的Excel文件中,我有一个包含文章描述(类型字符串)的参数。 在解析文件中,它不会读取包含引号“”的描述字段;它跳过它们,如下面的描述示例: CABO VERDE 'TACV' 我通过添加测试更改了getter方法,但它不起作用: public function getName() { if($this->_name= str_replace(''','\'', $this->_name)){ return $this->_name; }

在我的Excel文件中,我有一个包含文章描述(类型字符串)的参数。 在解析文件中,它不会读取包含
引号“
”的描述字段;它跳过它们,如下面的描述示例:

CABO VERDE 'TACV'
我通过添加测试更改了getter方法,但它不起作用:

public function getName() {
  if($this->_name= str_replace(''','\'', $this->_name)){       
    return $this->_name;
  }
}
如何更改读取描述字段所有数据的方法?

1)比较运算符是
=
,而不是
=

2) 语法错误;要么转义内引号,要么使用双引号

应该是

if($this->_name==str_replace("'",'', $this->_name) 
这段代码试图找出字符串中是否有一个',有很多方法可以做到这一点。我会用

if(strstr($this->_name,"'")===FALSE)
// ' is not present in name
但是您的方法也没有错。

1)比较运算符是
=
,而不是
=

2) 语法错误;要么转义内引号,要么使用双引号

应该是

if($this->_name==str_replace("'",'', $this->_name) 
这段代码试图找出字符串中是否有一个',有很多方法可以做到这一点。我会用

if(strstr($this->_name,"'")===FALSE)
// ' is not present in name

但是您的方法也没有错。

使用您当前的str\u replace方法:

if($this->_name == str_replace("'", "", $this->_name)
{
   return $this->_name;
}
虽然很难看出,但第一个参数是双引号,后面是单引号,后面是双引号。第二个参数是两个双引号,中间没有任何内容

使用str_replace,您甚至可以拥有一个要完全删除的字符串数组:

$remove[] = "'";
$remove[] = '"';
$remove[] = "-"; // just as another example

$FileName = str_replace( $remove, "", $this->_name);

使用当前str_replace方法:

if($this->_name == str_replace("'", "", $this->_name)
{
   return $this->_name;
}
虽然很难看出,但第一个参数是双引号,后面是单引号,后面是双引号。第二个参数是两个双引号,中间没有任何内容

使用str_replace,您甚至可以拥有一个要完全删除的字符串数组:

$remove[] = "'";
$remove[] = '"';
$remove[] = "-"; // just as another example

$FileName = str_replace( $remove, "", $this->_name);

您在
str\u replace
的第一个字符串中忘记了一个
\
,我不太清楚您想要做什么
if()
语句的作用是什么?你想测试什么?你忘了在
str\u replace
的第一个字符串中有一个
\
,我不知道你到底想做什么
if()
语句是为了什么?您想测试什么?可能是OP只是想在替换引号并将其重新分配给
$this->\u name
后测试
$this->\u name
是否为非空。那么单个
=
就有意义了。示例字段值:
;这将不符合条件。否则很难理解if()语句想要实现什么。是的,从技术上讲是可能的,但我更倾向于认为这是一个格式错误的比较。如果它应该以这种方式与
=
一起工作,那么任何不为空的名称都将被批准,不管它是否具有
。OP表示他们希望避免使用带有
”的名称,而
则说明了这一点,但我不明白
if
条件试图实现什么。OP表示,如果某个字段包含引号,他们希望读取该字段的所有数据,但是
if
语句将执行相反的操作。我已经要求OP澄清。也许OP可以详细说明。然而,既然你的答案被接受了,我想OP的问题已经解决了。:-)@DecentDabbler这是一种令人困惑的检查方法,但它确实起到了作用。如果字符串包含
,则if条件为将返回false,因此不会返回名称。如果OP放了一个else子句,它会更合理,可能是OP只是想在替换引号并将其重新分配给
$this->\u name
后测试
$this->\u name
是否为非空。那么单个
=
就有意义了。示例字段值:
;这将不符合条件。否则很难理解if()
语句想要实现什么。是的,从技术上讲是可能的,但我更倾向于认为这是一个格式错误的比较。如果它应该以这种方式与
=
一起工作,那么任何不为空的名称都将被批准,不管它是否具有
。OP表示他们希望避免使用带有
”的名称,而
则说明了这一点,但我不明白
if
条件试图实现什么。OP表示,如果某个字段包含引号,他们希望读取该字段的所有数据,但是
if
语句将执行相反的操作。我已经要求OP澄清。也许OP可以详细说明。然而,既然你的答案被接受了,我想OP的问题已经解决了。:-)@DecentDabbler这是一种令人困惑的检查方法,但它确实起到了作用。如果字符串包含
,则if条件为将返回false,因此不会返回名称。如果OP提出了一个else条款,它会更有意义