这是我的图像Url PHP代码。
$GetImage = 'https://lh6.ggpht.com/hWXw7YRl9DpSMewd29xT9rvxcgnmGXeXSY9FTaPc3cbBCa-JO8yfwSynmD5C1DLglw=w124';
preg_match_all("/https://\w\w\d.\w+.com/[\w-]+=\w\d{2,3}/",$GetImage,$Result,PREG_SET_ORDER);
它为我工作,但我想提取"\w-“模式的结果,换句话说,我想提取"hWXw7YRl9DpSMewd29xT9rvxcgnmGXeXSY9FTaPc3cbBCa-JO8yfwSynmD5C1DLglw”这个字符串从我的图像网址…
请任何人帮助我解决这个问题……
谢谢
发布于 2013-02-23 18:05:21
我觉得尝试使用正则表达式来匹配整个URL太过分了。我建议您首先使用PHP的内置函数parse_url()解析URL。
<?php
$str = 'https://lh6.ggpht.com/hWXw7YRl9DpSMewd29xT9rvxcgnmGXeXSY9FTaPc3cbBCa-JO8yfwSynmD5C1DLglw=w124';
// Parse the URL before applying a regex. Only get the path part. Use substring to remove the leading slash
$path = substr( parse_url( $str, PHP_URL_PATH ), 1 );
$pattern = '/([^=]+)/';
$matches = array();
if ( preg_match( $pattern, $path, $matches ) ) {
// Regex matched
$id = $matches[1];
// Outputs: string 'hWXw7YRl9DpSMewd29xT9rvxcgnmGXeXSY9FTaPc3cbBCa-JO8yfwSynmD5C1DLglw' (length=66)
var_dump( $id );
}
?>请注意,该代码段不会检查域名。通过不限制parse_url()函数只返回路径,还返回其他部分,您可以轻松地调整脚本来实现这一点。
发布于 2013-02-23 17:07:44
试着这样做
$GetImage = 'https://lh6.ggpht.com/hWXw7YRl9DpSMewd29xT9rvxcgnmGXeXSY9FTaPc3cbBCa-JO8yfwSynmD5C1DLglw=w124';
preg_match_all('#https://.*\.com/([\w-]+=\w\d{2,3})#iU', $GetImage, $match, PREG_SET_ORDER);
print_r($match);https://stackoverflow.com/questions/15038800
复制相似问题