警告:preg_replace():未知修饰符' h'

时间:2015-05-13 17:25:28

标签: preg-replace modifier

我使用concrete5 5.6.3.2创建了一个站点。我已经使用了这个帖子中的代码来尝试帮助我的拇指指甲缓存图像具有更加seo友好的外观,第36行突出显示。

https://www.concrete5.org/index.php?cID=540812&editmode=

将文件放入我的root帮助文件夹后,在我的一篇博客文章缩略图中,我看到了这个错误,而不是缩略图:

警告:preg_replace():未知的修饰符' h'在/home/foundry/public_html/helpers/image.php第36行

我创建了一个新博客后,缩略图没有同样的问题。

这是我的root / helpers / image.php代码的样子,第36行用粗体显示:

defined('C5_EXECUTE') or die("Access Denied.");

类ImageHelper扩展Concrete5_Helper_Image {public function getThumbnail($ obj,$ maxWidth,$ maxHeight,$ crop = false){       $ fID = false;       if($ obj instanceof File){          $ path = $ obj-> getPath();          $ fID = $ obj-> getFileID();       } else {          $ path = $ obj;       }

  /* BEGIN: Updated code */

  $fh = Loader::helper('file');
  $suffix = $this->jpegCompression; // Add prefix for compression level to serve the properly compressed images
  $suffix .= ($crop ? '-1' : '-0'); // Name cropped images different from resized images so they don't get mixed up in the cache

  **$origName = strtolower(preg_replace('/_/', '-', preg_replace('/.'.$fh->getExtension($path).'$/', '', substr(strrchr($path, "/"), 1))));**

  if (file_exists($path) && $fID) {
     $filename = $origName . '-' . $maxWidth . '-' . $maxHeight . '-' . $suffix . '-' . $fID . '.' . $fh->getExtension($path);
  } else if (file_exists($path)) {
     $filename = $origName . '-' . $maxWidth . '-' . $maxHeight . '-' . $suffix . '-0.' . $fh->getExtension($path); 
  } else if ($fID) {
     $filename = $origName . '-' . $maxWidth . '-' . $maxHeight . '-' . $suffix . '-' . $fID . $fh->getExtension($path);
  } else {
     $filename = $origName . '-' . $maxWidth . '-' . $maxHeight . '-' . $suffix . '-0.' . $fh->getExtension($path);         
  }

  /* END: Updated code */

  if (!file_exists(DIR_FILES_CACHE . '/' . $filename)) {
     // create image there
     $this->create($path, DIR_FILES_CACHE . '/' . $filename, $maxWidth, $maxHeight, $crop);
  }

  $src = REL_DIR_FILES_CACHE . '/' . $filename;
  $abspath = DIR_FILES_CACHE . '/' . $filename;
  $thumb = new stdClass;
  if (isset($abspath) && file_exists($abspath)) {         
     $thumb->src = $src;
     $dimensions = getimagesize($abspath);
     $thumb->width = $dimensions[0];
     $thumb->height = $dimensions[1];
     return $thumb;
  }               

}}

网站页面链接为http://www.pentictonfoundry.com/news/

感谢任何人对此的反馈,我非常感谢!

1 个答案:

答案 0 :(得分:0)

问题是路径中有斜杠。使用不同的分隔符,例如:进行替换。