我需要这样的url:https://www.domain.com/m/281/[imagename].jpg然后把它变成这样:http://www.NEWdomain.com/images/[imagename].jpg我需要对许多url执行此操作,因此我想编写一个快速的php脚本以将url放入数组中,然后循环更改域名并删除原始url中的文件结构。并非所有原始网址都是/m/281有些略有不同。我想我可以为https://www.domain.com做一个str_replace到http://www.NEWdomain.com,但我不知道如何将url中的不同/m/281/更改为我的文件结
这些函数在类文件中,并且通过表单传递变量。如果我向它传递一个仅包含字符a-z或A-Z的字符串,为什么它会说不匹配?functionpattern_check($patten,$string){$pass=preg_match($patten,$string);return$pass;}functioncheck_name($name){$pat='/^[a-zA-Z]/';$name=$this->pattern_check($pat,$name);if($name){echo"Match";}else{echo'Nomatch';}} 最佳答案
我有一个功能可以通过扫描博客条目、新闻和其他项目中的某些核心关键字来帮助在我的站点内链接页面。然后,它会用指向相应页面的链接替换这些关键字。我遇到了一些不应该用链接替换的词的问题。例如,我的一些HTML表格中有一个摘要标记,其中包含表格内容的小摘要。因此,例如,我可能有一个如下所示的标签:...我的函数错误地将关键字或短语(如“汽车零件”)替换为链接。我如何构造我的替换正则表达式以在这种情况下不替换它,但如果它出现在一个段落中或者甚至在HTML表格的一个单元格中,请替换它。在此先感谢您的帮助和指导!编辑:澄清一下,我正在使用PHP呈现我的页面。在将内容作为HTML输出到页面之前,我使用
例如,我有以下代码:$string="adfggggeerevalueaaaabbb(10)valueddtttgggwww(20)valueddtttgggwwwdddd(40)";preg_match("/(value).*(\(\d+\))/is",$string,$result);var_dump($result[2]);//outputs40.我正在尝试获取第一个值(10)。上面的代码输出40是有道理的,但不是我想要的。字符串模式是:单词“值”,然后是任意字符的数字,然后是“(”、整数、“)”。似乎我遗漏了一些明显的东西......我没有太多地使用正则表达式,但我相信它可以通
有没有更好的方法来处理在PHP中(或一般情况下)运行多个正则表达式?我有下面的代码用破折号替换非字母数字字符,一旦替换发生,我想删除多个破折号的实例。$slug=preg_replace('/[^A-Za-z0-9]/i','-',$slug);$slug=preg_replace('/\-{2,}/i','-',$slug);有没有更简洁的方法来做到这一点?即,设置正则表达式模式以替换一个模式,然后替换另一个模式?(说到正则表达式,我就像一个插在socket里的child) 最佳答案 你可以通过说出你在第一个中的真正意思来消除第二
我想捕获路径中没有年份的最后一个文件夹。对于这个字符串路径,我只需要“MillersCrossing”而不是“Movies\MillersCrossing”,这是我当前的正则表达式捕获的内容。G:\Movies\MillersCrossing[1990]preg_match('/\\\\(.*)\[\d{4}\]$/i',$this->parentDirPath,$title); 最佳答案 basename[docs]怎么样?和substr[docs]而不是复杂的表达式?$title=substr(basename($this->p
我想用不同的字符拆分字符串,我想知道“拆分器”是什么。字符串可以是例如:"address=test""number>20""age在这些情况下,我想获取数组中的名称、分隔符和值。array[0]='address';array[1]='=';array[2]='test';分隔符为=,==,!=,,>=,谁能告诉我如何处理这个问题? 最佳答案 $strings=array("address=test","number>20","age]+)(=|==|!=||>=|]+)/',$s,$matches);echo'Left:',$ma
有没有办法使用正则表达式和php检查有效的host:port组合?正则表达式必须确保:host为合法IP(包含4个1-3位数字,3点分隔,1-255范围内的数字)有一个分隔符:port是0到65535之间的有效数字不允许有其他内容有效组合示例:95.241.1.5:54232.8.5.2:65532无效组合示例:1.2345.12.1:544115.852.32.455:15189684165.112.15.32:48trololo 最佳答案 ^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?
我有以下正则表达式:/[0-9#%@_$&!?^\/|*]+/i它不应该接受信件。如果一开始没有输入字母,它会接受字母。例如:如果我输入“123e”,它会找到一个匹配项(但不应该,因为有一个字母)我的正则表达式有什么问题?谢谢 最佳答案 您的正则表达式会检查您指定的列表字符中是否有一个或多个--123e也是如此。它不检查字符串是否只包含那些。你可能想编辑你的正则表达式,所以它看起来像这样:/^[0-9#%@_$&!?^/|*]+$/i我在其中添加了以下两个anchors:^表示“字符串/行的开始”$表示“字符串/行结束”这意味着正则
例如我在数据库中有一句话:His$name$is$Luis$现在,我想替换标签()中的$..$,例如:HisnameisLuis我怎样才能用preg_replace做到这一点?我试着简单地做:$replace[0]='';$replace[1]='';preg_replace('/[$]/',$replace,$string);但不起作用。 最佳答案 preg_replace('/\$(.*?)\$/','\1',$string); 关于php-preg_replace有两个替换,我们在