草庐IT

replace-md

全部标签

php - preg_replace 没有按预期工作

我写了一个简单的函数,它接受一段文本,从中提取url,然后用替换所有url。标记他们。例如http://site.com应该变成http://site.com代码:functionparseUrls($string){$string=trim($string);$pattern='%\bhttp[s]?://[A-z0-9/\.\-_]+%i';$replacement='$1';$string=preg_replace($pattern,$replacement,$string);return$string;}但是,如果我将以下字符串作为输入传递:你好https://google.c

php - 用 Preg_replace 删除汉字?

我正在尝试从字符串中删除中文字符。试过了,但无法正常工作。它说:Warning:preg_replace()[function.preg-replace]:Compilationfailed:charactervaluein\x{...}sequenceistoolargeatoffset9inpreg_replace('/[^\x{4e00}-\x{9fa5}]+/','',$string)我怎样才能让它工作? 最佳答案 InUTF-8mode,"\x{...}"isallowed,wherethecontentsofthebra

php preg_replace 特定 html 注释标签之间的所有内容

我检查了其他答案,但似乎无法执行以下操作。请帮助某人:)我想删除中间的所有内容,包括特定的html注释HTML:SomeHTMLthatmuststaysomehtmlthatmustgoSomemoreHTMLthat'sgottastaythisalsoneedstogo因此之间的所有内容和并且评论本身需要去我的preg_replace模式(这显然是错误的):"/.*?/"结果应该是SomeHTMLthatmuststaySomemoreHTMLthat'sgottastay感谢您提前检查和回答:) 最佳答案 感谢@mlwaco

php - 可以将 MD5 转换为 SHA256 吗?

我有一个带有双MD5密码和盐的vBulletin数据库,是否可以在vBulletin数据库中获取密码,将它们转换为SHA256,然后将它们存储在一个新数据库中?有什么真正简单的方法可以做到这一点吗?我的主要也是唯一原因是为了防止用户必须创建新帐户并停止使用MD5。 最佳答案 散列算法是单向,即与加密-解密算法不同,它们不能逆转。MD5()是哈希算法,SHA-1/SHA-256;也是。很高兴知道您已停止使用MD5()并移动到SHA-256()解决您的问题。首先像这样在用户表中运行查询UPDATEusers_tSETPASSWORD=S

php - 使用 md5 哈希作为注册字符串 token 是否安全?

我开始在我的项目上开发用户注册。用户将通过电子邮件发送的链接确认他们的注册。我想我可以使用表单中插入的电子邮件,加上一个随机盐,然后散列这个连接的字符串,这样每个字符串标记都是唯一的。链接将是这样的:http://www.example.com/register/7ddf32e17a6ac5ce04a8ecbf782ca509我认为它很好并且易于构建,但我不确定它是否足够安全。我正在使用CakePHP2.7和SQLServer2014开发这个项目。 最佳答案 这实际上取决于您如何生成MD5。只要确保您的数据是随机的。我不使用MD5来

php - 为什么要同时使用 str_replace() 和 preg_replace()?

我是在Perl之后才开始了解PHP的,所以当我第一次发现preg_*函数时,我基本上只是使用它们。后来我读到str_replace()在处理文字文本时速度更快。所以我的问题是,当搜索模式不使用特殊字符时,preg_replace()不能像str_replace()一样高效吗?也许只是分析模式以在正则表达式和纯文本算法之间做出选择? 最佳答案 理论上是的,你是对的。PHP团队可能会调整preg_replace来分析传入的模式,然后在没有看到任何元字符的情况下使用str_replace的代码。假设分析不是太繁重,这可能会产生更好的性能结

php - str_replace ('<' ) 可以保护我们免受用户注入(inject)代码的侵害吗?

好的,我有一些用户输入,我做了一个echostr_replace('我想知道,无论如何用户是否可以破坏此过滤器?最初我认为这个脚本非常安全,但在阅读了一些关于php、字符集和安全性的文章后我开始怀疑它的健壮性。 最佳答案 这取决于输入的最终位置。例如,如果在某个时候你最终得到了一个像这样构造的(糟糕的)模板......">alink然后有人可以通过简单地使用以下输入来注入(inject)代码:javascript:do_whatever()即使输出通常不会回显到href字段中,像这样..."href="http://www.goog

php - 为什么\\。平等的\。在preg_replace?

在top-votedanswer至thisfantasticquestion,以下正则表达式用于preg_replace调用(来自答案的auto_version函数):'{\\.([^./]+)$}'这个正则表达式的最终目标是从给定的文件名中提取文件的扩展名。但是,我对为什么这个正则表达式的开头起作用感到困惑。即:为什么\\.匹配方式与\.相同在正则表达式中?前者不应该匹配(a)一个文字反斜杠,后跟(b)任何字符,而第二个匹配一个文字句点吗?singlequotedstrings的规则说明\\产生文字反斜杠。考虑这个简单的例子:$regex1='{\.([^./]+)$}';//Var

PHP,从数组读取时str_replace出现问题

我是php的新手,我正在尝试编写一个脚本来读取CSV文件(file1.csv)并将文件中的单词与html文件(file2.html)中的单词进行比较,如果file2中有单词.html与file1.csv中的关键部分匹配它应该使用匹配的关键值更改file2.html内容..到目前为止我所做的是:$glossArray=array();$file_handle=fopen("file1.csv","r");while(!feof($file_handle)){$line_of_text=fgetcsv($file_handle,10000,';');$glossArray[$line_of

PHP 全局替换 ereg(i)(_replace)

我有150多个PHP文件需要更改(将ereg更新为preg_match)。我厌倦了手动更新它们,但它需要永远,我想确保我的所有替换都能在第一次工作。我该怎么做才能进行这种操作?这是我的ereg(i)的一些例子if(eregi("^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$",$ip)){/*...*/}if(eregi($regexp,$label,$match)){/*...*/}$string=eregi_replace("[[:space:]]+",'',$string);谢谢 最佳答案