首页 > 解决方案 > 如何在 wordpress 中使用 preg_match

问题描述

我没有在定义的变量中得到特定的文本

在正常情况下 PHP 工作正常.. 但是当我在 wordpress 中上传这段代码时.. 它不工作.. 抛出错误

$ical = 'BEGIN:VCALENDAR
PRODID:-//SomeExampleStuff//EN
VERSION:2.0
BEGIN:VEVENT
CREATED:20190726T114808Z
DTEND;TZID=Asia/Kolkata:20190726T180000
DTSTAMP:20190726T114813Z
DTSTART;TZID=Asia/Kolkata:20190726T170000
LAST-MODIFIED:20190726T114808Z
LOCATION:
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:Bajaj 
UID:A8H1C9CE-B911-466B-T04C-CP69098907K1
END:VEVENT
END:VCALENDAR';

if (! preg_match( '#^UID:(.*?)\r?\n?$#m', $ical, $matches ) ):
     echo "not fould";
      else: 
      $uid = $matches[1];
      echo $uid;
   endif;

我只需要$ical变量中的“UID:A8H1C9CE-B911-466B-T04C-CP69098907K1”

标签: wordpresspreg-match

解决方案


感谢详细报告

preg_ 函数如设置preg_matchphp.ini

Pcre.backtrack_limit Pcre.recursion_limit

如果超过了内存大小的上限,就好像报错了。

因此,当预计尺寸较大时,需要以其他方式处理以避免 preg_match,因此按照建议将其替换为 using 的strpos方法substr


推荐阅读