【问题标题】:preg_replace or str_replace don't workpreg_replace 或 str_replace 不起作用
【发布时间】:2015-05-13 14:29:43
【问题描述】:

我是法国新手,我有一个小问题。我想用 php 去掉 \" 的双引号。我一直在尝试这个 preg_replace 但它不起作用,我在 $test 中有同样的句子。

function debgScript($file, $var){
   $test = "Vous devez d'abord nous informer sur le nombre de personnes qui voyagent (Voir dans l'onglet "INFO VOYAGE")";
   $var = preg_replace("/\"/", "\"", $test);
   $monfichier = fopen($file, 'a');
   fputs($monfichier, $var);
   fclose($monfichier);
}

你能帮帮我吗?

【问题讨论】:

  • 只是好奇,为什么要用\"替换双引号?
  • 如果要去掉双引号,不要用双引号代替:$var = preg_replace("/\"/", "", $test);
  • $var = preg_replace("/\"/", "\\\"", $test);试试看
  • 使用addslashes。还要提一下,你的sn-p能正常运行吗?您的 $test 根本不是正确的 php 语法。你的" 破坏了任务。
  • 我们用excel文件的内容生成变量,我们只需要为双引号添加斜线。感谢您的回复。

标签: php regex preg-replace


【解决方案1】:

试试这个:

$var = preg_replace("/\"/", "\\\"", $test);

【讨论】:

  • 你好 pabgaran,谢谢你的回答,它工作正常。再次感谢。
【解决方案2】:

您无法从$test 变量中删除双引号的主要原因是该变量中没有双引号。您正在使用双引号来定义变量

$test = "...."INFO VOYAGE")";

这是错误的语法。一旦你到达 INFO VOYAGE 前面的双引号,你就离开了字符串。有一种轿跑车方法可以解决此问题。

  • 你可以转义作业中的双引号
  • 您可以连接双引号字符
  • 可能还有许多其他创造性的方式,不胜枚举

基本上,您的选择将取决于您的输入是如何输入的,但只要不采取额外步骤,您就不能在双引号字符串中包含双引号。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-12
    • 1970-01-01
    • 2013-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多