使用正则表达式从Google Fonts URL获取字体名称

时间:2013-05-04 09:28:42

标签: php

请告诉我如何使用Google字体网址preg_match字体名称。

例如,我想从以下字体中提取字体名称:

http://fonts.googleapis.com/css?family=Oswald:400,300
http://fonts.googleapis.com/css?family=Roboto+Slab

以获取字体名称OswaldRoboto Slab

2 个答案:

答案 0 :(得分:3)

你可以避免使用正则表达式

$parsedUrl = parse_url($url);
$queryString =  $parsedUrl['query']; 
$parsedQueryString = parse_str($queryString);
$fontName = array_shift(explode(':', $parsedQueryString['family']));
$idealFontName = urldecode($fontName);
echo $idealFontName;

答案 1 :(得分:1)

以下是您可以使用preg_replace()执行操作的示例,但请仔细挖掘Google数据。

<?php
$urls = array("http://fonts.googleapis.com/css?family=Oswald:400,300",
"http://fonts.googleapis.com/css?family=Roboto+Slab");

$patterns = array(
      //replace the path root
'!^http://fonts.googleapis.com/css\?!',
      //capture the family and avoid and any following attributes in the URI.
'!(family=[^&:]+).*$!',
      //delete the variable name
'!family=!',
      //replace the plus sign
'!\+!');
$replacements = array(
"",
'$1',
'',
' ');

foreach($urls as $url){
    $font = preg_replace($patterns,$replacements,$url);
    echo $font;

}

?>