为什么我尝试在此PHP函数上声明此正则表达式时会出现此语法错误?

时间:2015-07-13 12:11:02

标签: php regex wordpress

我在PHP中绝对是新的,我正在尝试使用这个函数(建立在一个教程中)执行常规异常,找到第一个链接到一个字符串(代表一个WordPress的帖子内容,但这并不重要这一次)。

function get_content_link($content = false, $echo = false){

    if ( $content === false )
        $content = get_the_content(); // Retrieve the post content

    $content = preg_match_all( '/hrefs*=s*["']([^"']+)/', $content, $links);

    $content = $links[1][0];

    if ( empty($content) ) {
        $content = false;
    }

    return $content;
}

问题是它在代表正则表达式的行上给出了语法错误

$content = preg_match_all( '/hrefs*=s*["']([^"']+)/', $content, $links);

为什么呢?怎么了?我该如何解决这个问题?

2 个答案:

答案 0 :(得分:5)

need to escape单引号:

'/hrefs*=s*["\']([^"\']+)/'

答案 1 :(得分:1)

您需要跳过特殊字符:

$content = preg_match_all( '/hrefs*=s*["\']([^"\']+)/', $content, $links);