【问题标题】:Replace "//" with "/* */" in PHP? [closed]在 PHP 中将“//”替换为“/* */”? [关闭]
【发布时间】:2015-10-01 15:21:14
【问题描述】:

我正在编写代码来缩小 html/css/js,但我遇到了问题。

我需要用 /* 和 */ 替换 //。

例子:

$(funcion(){
// Do something
});

替换为:

$(funcion(){
/* Do something */
});

这是怎么做到的?

【问题讨论】:

  • 如果你要缩小代码,你应该删除 cmets
  • 对@enigma 是的,你要添加 2 到 3 个字节
  • 为什么完全需要这样做?您实际上想解决什么问题?
  • 我会假设他们有缩小的代码,但它不会将 // 识别为注释。
  • 您可以使用正则表达式来识别 // 后跟任何到行尾的内容。然后,通过添加 /* 和 */ 来替换您找到的内容。如果您在其中引用了带有 // 的字符串,这将非常糟糕。

标签: php preg-replace str-replace


【解决方案1】:

首先,正如 cmets 中所指出的,如果您希望减小尺寸,则应剥离 cmets。

function convertComment(str){
   if(str.substring(0,2) === '//'){
       str = '/*' + str.substring(2) + ' */';
   } else {
       str = false;
   }
   return str;
}

您的示例代码看起来像 JQuery,所以如果您正在寻找 PHP,这里是那个版本:

function convertComment($s){
   if(substr($s,0,2) == '//'){
       $s = '/*' . substr($s,2) . ' */';
   } else {
       $s = false;
   }
   return $s;
}

【讨论】:

  • 这在我看来不像 PHP
  • OP 也没有,它是带有 JQuery 的 JavaScript。如果他想要 PHP 代码,他应该在 PHP 中给出一个例子。
  • 我认为 OP 在 JS 字符串上运行 PHP。
  • OP 尝试在 PHP 中缩小 JS...
  • 同意,我们都以不同的方式解读了这个问题。主题建议 OP 想用 PHP 来做,但示例代码是 JQuery。帖子有些模糊。这导致两个可能是正确的答案。你的确实和我的一样做了 OP 无法做到的事情。
【解决方案2】:

你可以使用这个正则表达式:

/(?m)^\h*\/\/(.*)$/

然后替换为

/*$1*/

替换以// 开头的每一行或// 之前的任意数量的空格。

Regex101 演示:https://regex101.com/r/oE0rY0/1

(?m) 启用 m 修饰符,这使得 ^$ 匹配每一行而不是整个字符串。 \h* 是零个或多个空格。 \/ 正在转义第一个 /,因为那是分隔符(可以是任何分隔符,然后不需要转义,http://php.net/manual/en/regexp.reference.delimiters.php)。然后.* 是直到$ 行末尾的每个字符。 ()// 之后捕获找到的值。

PHP 用法:

$string = '//replace me please
dont touch http://www.google.com
or //this one
  //but this one do as well';
$regex = '/^\h*\/\/(.*)$/m';
echo preg_replace($regex, '/*$1*/', $string);

输出:

/*replace me please*/
dont touch http://www.google.com
or //this one
/*but this one do as well*/

PHP 演示:https://ideone.com/j7Xj4L

【讨论】:

  • 谢谢大家,但它根本没有解决我的问题......我在stackoverflow.com/questions/32899570/…解释得更好
  • 既然和这个问题一样,你应该用更详细的解释更新这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-20
  • 2013-10-09
  • 2010-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-15
相关资源
最近更新 更多