标签: preg-replace

在函数内部的preg_replace中调用函数

我有一些与此类似的结构的代码

           function bbcode($Text)
           { //$Text = preg_replace("/\[video\](.+?)\[\/video\]/",embed_video($1), $Text);
    return $Text;}

    function embed_video($url){
if (preg_match("/http:\/\/www.youtube.com\/watch\?v=([0-9a-zA-Z-_]*)(.*)/i", $url, $matches)) {
    return '<object width="425" height="350">'.
           '<param name="movie" value="http://www.youtube.com/v/'.$matches[1].'" />'.
           '<param name="wmode" value="transparent" />'.
           '<embed src="http://www.youtube.com/v/'.$matches[1].'&autoplay="0" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350" />'.
           '</object>';
}
    return $url;
    }

$lolcakes = "[video]http://youtube.com/id/xxxxxxpron[/video]";
$lolcakesconverted = bbcode($lolcakes);
Run Code Online (Sandbox Code Playgroud)

问题是它向我吐出一个错误.

解析错误:语法错误,意外T_LNUMBER,期待T_VARIABLE或'$'

如何在bbcode函数的preg_replace中调用embed_video有任何想法?

谢谢!

php function syntax-error preg-replace

14
推荐指数
2
解决办法
2万
查看次数

从字符串的末尾删除<br>

正如标题所说,我有一个这样的字符串:

$string = "Hello World<br>hello world<br><br>";
Run Code Online (Sandbox Code Playgroud)

现在我想摆脱<br>这个字符串末尾的s所以它看起来像这样:

$string = "Hello World<br>hello world";
Run Code Online (Sandbox Code Playgroud)

我试过这个:

preg_replace('/^(<br>)*/', "", $string);
Run Code Online (Sandbox Code Playgroud)

但这没用.也许有人知道正确的正则表达式.

问候彼得

php regex preg-replace

14
推荐指数
3
解决办法
2万
查看次数

删除标点符号,符号,变音符号,特殊字符的最佳方法是什么?

我使用这些代码行来删除所有标点符号,符号等,你可以在数组中看到它们,

$pattern_page = array("+",",",".","-","'","\"","&","!","?",":",";","#","~","=","/","$","£","^","(",")","_","<",">");

$pg_url = str_replace($pattern_page, ' ', strtolower($pg_url));
Run Code Online (Sandbox Code Playgroud)

但是我想让它变得更简单,因为在列表中列出我要删除的所有东西看起来很傻,因为我可能会删除一些其他特殊字符.

我想过使用下面的正则表达式,

$pg_url = preg_replace("/\W+/", " ", $pg_url);
Run Code Online (Sandbox Code Playgroud)

但它没有删除得分不足 - _

删除所有这些东西的最佳方法是什么?正则表达能做到吗?

php preg-replace special-characters clean-urls

14
推荐指数
2
解决办法
2万
查看次数

如何从PHP中的字符串中删除括号?

我有以下字符串,并希望使用str_replace或preg_replace删除括号但不确定如何.我已经能够使用str_replace删除左括号,但无法删除右括号.

这是刺痛:

$coords = '(51.50972493425563, -0.1323877295303646)';
Run Code Online (Sandbox Code Playgroud)

我试过了:

<?php echo str_replace('(','',$coords); ?>
Run Code Online (Sandbox Code Playgroud)

删除了开头括号,但我现在认为我需要preg_replace来删除它们.

怎么会这样呢?

帮助赞赏

php string preg-replace str-replace

14
推荐指数
2
解决办法
4万
查看次数

为什么preg_replace与/(.*)/重复部分字符串?

为什么以下代码:

<?php echo preg_replace("/(.*)/", "$1.def", "abc");
Run Code Online (Sandbox Code Playgroud)

输出abc.def.def而不是abc.def

我很想知道重复发生的原因.

使用/(.+)//^(.*)$/按预期工作,但我不是在寻找解决方案,只是问一个问题(虽然这些模式可能与答案有关).

在这里修改现场版.

php regex preg-replace

14
推荐指数
1
解决办法
409
查看次数

一系列unicode的正则表达式指向PHP

我试图从字符串中删除字符串中的所有字符,除了:

  • 字母数字字符
  • 美元符号($)
  • 下划线(_)
  • 代码点U+0080和之间的Unicode字符U+FFFF

这样做我有前三个条件:

preg_replace('/[^a-zA-Z\d$_]+/', '', $foo);
Run Code Online (Sandbox Code Playgroud)

我该如何匹配第四个条件?我看着使用,\X但必须有一个比列出65000多个字符更好的方法.

php regex unicode preg-replace

14
推荐指数
1
解决办法
9790
查看次数

简单的preg_replace

我根本找不到preg_replace,它只是看起来像中文,无论如何我只需&page-X要从字符串中删除" ",如果它在那里.

X当然,如果有人有一个preg_replace初学者的有用教程的链接,也会很方便!

php string replace preg-replace

13
推荐指数
2
解决办法
3万
查看次数

PHP preg_replace \

真的很简单的问题:我怎么能用preg_replace反斜杠字符?

php preg-replace

13
推荐指数
3
解决办法
2万
查看次数

使用preg_replace替换多次出现的相同符号?

假设我有一个这样的字符串:

$string = "hello---world";
Run Code Online (Sandbox Code Playgroud)

我怎样才能用一个连字符替换---?字符串很容易看起来像这样:

$string = "hello--world----what-up";
Run Code Online (Sandbox Code Playgroud)

期望的结果应该是:

$string = "hello-world-what-up";
Run Code Online (Sandbox Code Playgroud)

php regex preg-replace

13
推荐指数
1
解决办法
8799
查看次数

正则表达式忽略重音?PHP

无论如何要制作一个忽略重音的正则表达式?

例如:

preg_replace("/$word/i", "<b>$word</b>", $str);
Run Code Online (Sandbox Code Playgroud)

正则表达式中的"i"是忽略区分大小写,但无论如何要匹配,例如
javaJávã

我确实尝试制作$ str的副本,将内容更改为无重音字符串并找到所有出现的索引.但是2个字符串的索引似乎是不同的,即使它只是没有重音符号.

(我做了一项研究,但我所能找到的是如何从字符串中删除重音)

php regex diacritics preg-replace

13
推荐指数
1
解决办法
6408
查看次数