问题标签 [preg-replace]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
467 浏览

php - 验证文件名的业务最佳实践是什么?

我有一个“困境”,想知道什么是商业最佳实践。

我正在使用 Uploadify 上传图片。现在我需要在保存文件之前验证文件名。

我查看了不同的解决方案,但无法找到一种好的解决方案。

这是我的标准:

  • 文件名必须全部小写
  • 文件名只能包含字符 [a-z0-9_-]
  • 我必须能够重命名文件

如果文件名是 ,你会怎么做my.file(name).jpeg

我可以在 '.' 上分解文件名。并保存扩展名,然后再次内爆以获取文件名。但不确定这是否是最好的解决方案。

我有以下功能有点帮助:

更新 1
我通过 $_FILES 接收文件。这给了我以下数据:

  • $_FILES["file"]["name"] - 上传文件的名称
  • $_FILES["file"]["type"] - 上传文件的类型
  • $_FILES["file"]["size"] - 上传文件的字节大小
  • $_FILES["file"]["tmp_name"] - 存储在服务器上的文件的临时副本的名称
  • $_FILES["file"]["error"] - 文件上传产生的错误代码

更新 2
我刚刚发现了一些东西。我可以使用getimagesize它将返回一个包含 7 个元素的数组。这些元素之一 [2] 是 IMAGETYPE_XXX。

所以我尝试使用这段代码:

但它只返回数字 2...

(我也尝试使用 exif_imagetype,但它只得到PHP Error: Call to undefined function。)

0 投票
3 回答
1079 浏览

php - PHP regex 用于过滤来自特定域的 url 以在 vBulletin 插件中使用

我正在尝试为 vBulletin 组合一个插件,以过滤掉指向文件共享站点的链接。但是,我相信你经常听到,我是 php 的新手,更不用说正则表达式了。

基本上,我正在尝试组合一个正则表达式并使用 preg_replace 来查找来自这些域的任何 url,并将整个链接替换为不允许它们的消息。我希望它能够找到链接,无论它是超链接的、作为纯文本发布的还是包含在 [CODE] bb 标签中的。

至于正则表达式,我认为我需要它来查找具有以下内容的 URLS:

  1. 以 http 或锚标记开头。我相信 [CODE] 标签中的 URLS 可以像纯文本 URLS 一样被处理,如果之后替换结束在 [CODE] 标签内就可以了。
  2. 在域/单词之前可以包含任意数量的任意字符
  3. 域在中间的某个地方
  4. 在域之后可以包含任意数量的任意字符
  5. 以多个扩展名结尾,例如 (html|htm|rar|zip|001) 或结束锚标记。

我有一种感觉,是数字 2 和 4 让我绊倒(如果不是更多的话)。我在这里发现了一个类似的问题,并试图将代码分开一点(即使我并不真正理解它)。我现在有这个我认为可能有用的东西,但它没有:

我有一种感觉,我在这里离基地很远,我承认我并不完全了解 php,更不用说正则表达式了。我愿意接受有关如何更好地做到这一点、如何使其工作或 RTM 链接的任何建议(尽管我已经阅读了一些内容,我将继续)。

谢谢。

0 投票
5 回答
208 浏览

php - 将所有 br 标签转换为一个通用标签

需要一个简单的 preg_replace 将<br> <br/>所有可能的 br 组合转换为<br />.

这需要按顺序工作,以便我可以处理一个字符串,即: $output = preg_replace('', '<br />', $input)

谢谢大家!

0 投票
4 回答
927 浏览

php - 给定一个数组,如何删除单个出现的冒号 & 前后的空格,并使其他多个空格变成一个?

数组示例条目:

变成

0 投票
4 回答
392 浏览

php - 在 PHP 中,使冒号左边的每个字母都小写,不使用爆炸、内爆

这可以用正则表达式完成吗?

例子

x-example-HEADER:teSt 变成 x-example-header:teSt

y-exaMPLE:testoneTWOthree 变成 y-example:testoneTWOthree

0 投票
1 回答
111 浏览

php - 匹配第一个

不是以正则表达式中的图像开头

在 PHP 中,我试图匹配第一个段落标记,而不是紧随其后的<img>标记,并将一个类添加到该段落标记。

例如,它会将一个类添加到:

但不是:

到目前为止,这是我成功将一个类添加到第一个段落标记的内容,但它不会跳过,直到它找到一个不立即包含图像的段落标记:

想法?抱歉,如果这没有意义。

0 投票
4 回答
2450 浏览

php - preg_replace 方法上的 PHP 语法错误

我正在尝试做一个可以创建个性化标签的 bbcode 解析器类,但我对 url 有一些问题

多亏了正则表达式,我已经完成了所有我需要的工作而没有特别的问题,但是当我尝试创建一个指向指定 URL 的特殊标签时,我遇到了问题。

在我的课堂上,我添加了一个这样的方法:

该代码适用于经典网址 [url] http://ciao.com[/url] & [url= http://ciao.com]ciao[/url]

但是我对像 last.fm 样式的特殊 url 主题页面的情况有些问题,所以 [artist]Lemon Jelly[/artist]。

bblink 在 <a href="http://ciao.com/artist/Lemon Jelly"> Lemon Jelly</a>中转换(我使用空格 <a> 只是为了显示链接代码)。
该链接在 href 属性上有空格,因此永远无法正常工作。

为了避免这种情况,我编写了一小部分代码,用相同的 url 更改 href url 部分,但用“+”代替“”空白字符,所以[artist]Lemon Jelly[/artist]应该变成<a href="http://ciao.com/artist/Lemon+Jelly">柠檬果冻</a>

我没有使用 PHP 的经验,我不确定是什么问题,我在其他情况下使用了这种语法而没有遇到问题。

有人可以帮我找出我错的地方吗?

错误类型是 PHP Parse error: syntax error, unexpected T_LNUMBER, expecting T_VARIABLE or '$' in /...

0 投票
2 回答
1032 浏览

php - preg_replace 删除空标签但保留块引用的结尾

我做了这个表达式来删除页面中的所有空(包括只有空格的标签)标签。

在它不得不处理这样的内容之前,它一直是一种享受……

并将其输出为...

从而删除</blockquote>.

我一直在这个问题上摸不着头脑,无法让它工作。除了指定它应该格式化的标签之外,任何人都可以看到一个明显的解决方案吗?我还应该说它正在格式化 wordpress 帖子上的“the_content”。

0 投票
1 回答
176 浏览

php - 正则表达式,preg_replace_callback 问题 PHP

这就是我为我的 RegEx 所做的,我想知道这是否是最好的方法。

无论标识符之间的间距如何,我都希望能够找到类似的东西,并且不区分大小写。如果可能的话,不要担心订单..

例子:

这是我现有的代码:

0 投票
6 回答
165 浏览

php - PHP:正确的正则表达式使第一个冒号左边的每个字母都小写

现在我有:

这输出

它应该输出: