首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误类型- 2: preg_replace() [function.preg-replace]:编译失败:缺少)

错误类型- 2: preg_replace() [function.preg-replace]:编译失败:缺少)
EN

Stack Overflow用户
提问于 2011-11-15 17:16:50
回答 2查看 603关注 0票数 0

我有以下错误:

错误类型- 2: preg_replace()函数.preg-replace:编译失败:缺少),偏移量为25:在/var/www/hosting/com/galerielaboratorio/scripts/functions.php的第766行

下面是函数:

代码语言:javascript
复制
function getThumbName($photo, $name = 'thumb') {

$ext = preg_replace ("/.*\./", "", $photo);
$photo = preg_replace ("/\.". $ext ."$/", "" , $photo). "." . $name . "." .$ext; // this line causes the error  

return $photo;

}

提前感谢您的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-15 17:19:07

无法读取您的表达式,但您缺少一个)()-pairs定义表达式组。没有相应)(是无效的(这就是错误消息试图告诉您的)。如果你想要一个文字(,你必须对它进行转义\(

但是,看看pathinfo()explode()str_replace()。这不是正则表达式的场景

代码语言:javascript
复制
$ext = pathinfo($photo, PATHINFO_EXTENSION);
$photo = basename($photo) . '.' . $name . '.' . $ext;
票数 2
EN

Stack Overflow用户

发布于 2011-11-15 17:28:22

不确定哪里出了问题;从代码中看不清楚,因为您正在构建一个动态正则表达式。无论如何,这里有一个您可以享受的替代方法,它包含比原始函数稍微多一点的错误检查。

代码语言:javascript
复制
<?php
function getThumbName($photo, $name = 'thumb') {
    if( $ext = getExtension( $photo ) ) {
        return basename( $photo, $ext ) . 'thumb.' . $ext;
    }
    return false;
}

/**
 * Returns the file extension if it exists, false otherwise.
 * @param string $filename
 * @return string|bool
 */
function getExtension( $filename ) {
    return pathinfo( $filename, PATHINFO_EXTENSION );
}

echo getThumbName( 'foo.jpg' ) . PHP_EOL; // foo.thumb.jpg
echo getThumbName( 'slightly.more.complex.gif' ) . PHP_EOL; // slightly.more.complex.thumb.gif

echo getThumbname( 'This is where it gets interesting' ) . PHP_EOL; // false.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8133962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档