在 php 中将双反斜杠添加到单斜杠

Add double back slash to single in php

本文关键字:添加 单斜杠 php      更新时间:2023-09-26

我已经搜索了很多并尝试了javascript replace()函数和str_replace,添加斜杠,带斜杠,但我没有得到正确的输出。

这就是我正在做的事情:

str_replace("''","''''", "C:wamp'www'desi'uploads'artist'bg'9.jpg";

我得到的输出是:

C:wampwwwÞsiuploads'A rtist'B g .jpg

然后我尝试了另一种方法:

var clean=  "<?php echo str_replace("''","@",LINKCONSTANT); ?>".replace("@","''");

仍然没有任何想法?

这个问题不能

通过使用这样的str_replace来解决,因为双引号中的字符串将把斜杠作为转义序列处理。使用这样的str_replace并不能解决PHP(或javascript)处理字符串转义的问题 - 一旦你在字符串中有一个反斜杠,它就会非常忠实地停留在那里。

但是,字符串常量将在单引号中工作,如下所示:

'C:wamp'www'desi'uploads'artist'bg'9.jpg'

但正如其他地方指出的那样,Windows 中的目录分隔符在内部处理为"/"或"''",因此只需使用"/"(用于 API 调用)即可。

如果您希望输出一个可以安全地由javascript解析的字符串,请执行以下操作:

echo "var str = ".json_encode('C:wamp'www'desi'uploads'artist'bg'9.jpg').";";

它将以与 JavaScript 兼容的方式输出:

var str = "C:wamp''www''desi''uploads''artist''bg''9.jpg";

你要实现什么?将单个'替换为 ''

请注意,

  "''"

表示单个'的字符串。这是因为'"..."内部使用时前缀转义序列:

  'r  ->  Return
  't  ->  Tabular
  'n  ->  Newline

由于''具有这种特殊含义,因此您需要编写''来表示"...."内部的单个'

因此,这会将$resultString设置为C:wamp''www''desi''uploads''artist''bg''9.jpg

$sourceString = "C:wamp'www'desi'uploads'artist'bg'9.jpg";
$resultString = str_replace( "''", "''''", $sourceString );