标签: preg-replace

用PHP替换文件内容

我需要一个像preg_replace一样的函数,但我需要它来处理文件/文件内容而不是字符串.

php file-io replace file preg-replace

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

正则表达式和正斜杠

我正在通过正则表达式在字符串中搜索关键字.它适用于所有关键字,并在其中包含一个正斜杠:"time/emit".

即使使用preg_quote($find,'/'),逃脱它,我仍然得到消息:

Unknown modifier 't' in /frontend.functions.php  on line 71
Run Code Online (Sandbox Code Playgroud)

如果我打印查找模式,它会显示/time\\/emit/.如果没有preg_quote,它会显示/time/emit/ 并返回相同的错误消息.

任何一点知识都会有用.

php regex preg-replace

18
推荐指数
1
解决办法
3万
查看次数

正则表达式只允许使用字母数字,逗号,连字符,下划线和分号

我已经有了一些工作代码,但我需要有人帮助解释为什么它可以工作!

我使用PHP来替换字符串中的任何内容,如果它不是az,AZ,0-9,逗号,分号,下划线或连字符(最终应该代表单个用户名,或者逗号/分号分隔)用户名列表).

以下作品:

$data = preg_replace('/[^,;a-zA-Z0-9_-]/s', '', $data);
Run Code Online (Sandbox Code Playgroud)

但以下不是:

$data = preg_replace('/[^a-zA-Z0-9_-,;]/s', '', $data);
Run Code Online (Sandbox Code Playgroud)

为什么只有在逗号和分号开头时这才有效?将它们放在最后似乎会破坏事物(这是我在遇到/ [^ a-zA-Z0-9 _-]/s时最初尝试过的事情.

顺便说一句,我也使用以下内容修剪任何尾随的分号(复数)或逗号(复数),有人可能会建议一个更有效和/或更优雅的方式来做到这一点?:

if(preg_match('/;$/', $data))
{
    $data = rtrim($data, ';' );
}
if(preg_match('/,$/', $data))
{
    $data = rtrim($data, ',' );
}
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助 :)

php regex preg-replace

18
推荐指数
1
解决办法
4万
查看次数

Symfony 1.4使用php 5.5中的弃用函数

我最近将PHP从5.3.27升级到5.5.0.在我的Symfony 2.3.2项目中一切正常,我可以享受最新的PHP功能.

现在当我回到我的其他Symfony 1.4.16项目时,我得到一个关于preg_replace被/ e修饰符弃用的PHP错误.

我在论坛中找不到关于此错误的参考:以前是否有人遇到此问题?有什么样的补丁我可以开箱即用吗?升级到Symfony 1.4.20会解决这个问题吗?

错误消息如下所示:

不推荐使用:preg_replace():不推荐使用/ e修饰符,而是在第409行的/myproject/lib/vendor/symfony/lib/response/sfWebResponse.class.php中使用preg_replace_callback

一种方法可能是按照消息和手册中的建议修改代码.如何将preg_replace表达式更改为preg_replace_callback调用?

任何帮助/提示都将非常受欢迎.

编辑:

到目前为止,还没有补丁(Symfony 1.4.20没有解决这个问题).解决方案是将对preg_replace的失败调用替换为在sourche中对preg_replace_callback的相应调用,这很容易在sfWebResponse类中完成(感谢提示Jon).不幸的是,现在下一次失败的情况稍微复杂一些......另一方面,我们可能不得不使用/ e选项grep for preg_replace使用以找出Symfony可能会破坏的位置.这给出了不少结果:o

所以...我的结论是Symfony 1.4用户最好不要将PHP升级到5.5版,直到出现一些严重的补丁.你怎么看 ?还有其他选择

php preg-replace preg-replace-callback symfony-1.4

18
推荐指数
6
解决办法
3万
查看次数

检查字符串是否包含php中的字母

如何检查字符串是否在PHP中有字母表

而ctype_alphactype_digit不会在它的帮助.他们的任何方法?

php regex string preg-replace preg-match

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

删除尾随换行符

我有一个MySQL数据库,我从中提取一个字符串,这是一个由换行符分隔的单词列表.现在我想只删除尾随换行符.我尝试使用preg_replace作为

$string = preg_replace('/\n/','',$string);
Run Code Online (Sandbox Code Playgroud)

它工作但字符串中的所有换行都被删除:(请帮忙

感谢大家.

php regex mysql preg-replace

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

PHP等效于PHP preg_replace

我一直在寻找PHP preg_replace函数的js等价物,到目前为止我发现的很简单string.replace.

但是我不确定如何将我的正则表达式转换为JavaScript.这是我的PHP代码:

preg_replace("/( )*/", $str, $str);
Run Code Online (Sandbox Code Playgroud)

例如,以下内容:

test   test   test test
Run Code Online (Sandbox Code Playgroud)

变为:

test-test-test-test
Run Code Online (Sandbox Code Playgroud)

任何人都知道如何在JavaScript中执行此操作?

javascript php regex preg-replace

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

正则表达式可选组?

我似乎把自己与preg_match正则表达式混淆了,我正在做,所以新鲜的眼睛和帮助将不胜感激.

我目前的正则表达式如下:

/<!--menu:start:\(([0-9])\,([0-9])\)-->(.*?)<!--menu:end-->/se
Run Code Online (Sandbox Code Playgroud)

我想要输入数字和冒号,例如:(1,4)可选,所以它匹配:

<!--menu:start--><!--menu:end-->
Run Code Online (Sandbox Code Playgroud)

要么

<!--menu:start:(0,3)--><!--menu:end-->
Run Code Online (Sandbox Code Playgroud)

php regex preg-replace preg-match

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

检测文本中的电子邮件

我正在尝试创建一个函数,将给定字符串中每个出现的纯文本电子邮件地址转换为它的html化版本.

假设我有以下代码,htmlizeEmails我正在寻找的功能在哪里:

$str = "Send me an email to bob@example.com.";
echo htmlizeEmails($str); // Echoes "Send me an email to <a href="mailto:bob@example.com">bob@example.com</a>."
Run Code Online (Sandbox Code Playgroud)

如果可能,我希望此功能使用该filter_var功能来检查电子邮件是否有效.

有谁知道如何做到这一点?谢谢!

编辑:

感谢您的答案,我用令人震惊的正则表达式匹配潜在的电子邮件地址,然后,只有filter_var验证它,它就会被取代.

function htmlizeEmails($text)
    preg_match_all('/([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6})/', $text, $potentialEmails, PREG_SET_ORDER);

    $potentialEmailsCount = count($potentialEmails);
    for ($i = 0; $i < $potentialEmailsCount; $i++) {
        if (filter_var($potentialEmails[$i][0], FILTER_VALIDATE_EMAIL)) {
            $text = str_replace($potentialEmails[$i][0], '<a href="mailto:' . $potentialEmails[$i][0] .'">' . $potentialEmails[$i][0] .'</a>', $text);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

php regex email preg-replace preg-match

15
推荐指数
2
解决办法
7945
查看次数

如何从文本中删除变音符号?

我正在建立瑞典语网站,瑞典语字母是å,ä和ö.

我需要创建一个由用户输入的字符串,以使用PHP成为url-safe.

基本上,需要将所有字符转换为下划线,所有这些除外:

 A-Z, a-z, 1-9
Run Code Online (Sandbox Code Playgroud)

所有瑞典人应该像这样转换:

'å'到'a'和'ä'到'a'和'ö'到'o'(只需删除上面的点).

正如我所说,其余的应该成为下划线.

我不擅长正则表达式,所以我很感激帮助人!

谢谢

注意:不是URLENCODE ...我需要将它存储在数据库等等,urlencode不适合我.

php regex diacritics preg-replace

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