【问题标题】:Checking if imagedata are urlencoded jpeg via regex通过正则表达式检查图像数据是否是 urlencoded jpeg
【发布时间】:2018-09-11 20:02:49
【问题描述】:

我有以下课程:

namespace MyApp\ImageGenerators

class ImageGen
{

  public function checkIfImageUrlEncodedJpeg($imageData)
  {
     return preg_match($someregex,$imageData);
  }

}

如您所见,我想将 $someregex 变量的值设置为有效的 pcre 正则表达式,它将验证提供的数据是否为 ​​urlencoded base64Image。

【问题讨论】:

    标签: php regex image pcre


    【解决方案1】:

    在我的代码中,我使用了以下正则表达式:

    /^data:image\/jpeg;base64,\s*[A-Za-z0-9\+\/]+=*$/i

    如您所见,一个 urlencoded 数据包含以下部分:

    data:^mime^;base64,^data_encoded_as_base64^
    

    其中 ^mime^ 是被编码为 base64 格式的数据的 mime 到 ^data_encoded_as_base64^field。请记住,上面提到的方法只是检查数据“看起来符合”是否为有效的 urlencoded jpeg 图像。

    我会建议在大多数情况下尤其是,以防这些数据是用户提供或 api 提供的,以通过解码实际上是 jpeg 图像的 base64 编码部分来检查。

    为了简短起见,您的代码将如下所示:

     namespace MyApp\ImageGenerators
    
    class ImageGen
    {
    
      public function checkIfImageUrlEncodedJpeg($imageData)
      {
         return preg_match('/^data:image\/jpeg;base64,\s*[A-Za-z0-9\+\/]+=*$/i',$imageData);
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2013-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-17
      相关资源
      最近更新 更多