2011-07-12 10 views
1

正規表現のパターンを理解したことがなく、グーグルグーグルで私は賢明ではありませんでした。スプリット文字列PHP

私は、この文字列からWordPressのバージョン番号(3.2)をつかむしたい:将来的には

<meta name="generator" content="WordPress 3.2" /> 

3.3にアップグレードするとき私はそれを得ることができるように分割されたコードをwan't。だから静的な表現はありません。

どうすれば解決できますか?ここで

+2

適切な方法は、[HTMLパーサー](http://stackoverflow.com/questions/3577641/best-methods-to-parse-html-with-php/3577662#3577662)を使用することです。仕事のために過度のように見えるかもしれない –

+0

それは残忍かもしれませんが、長期的にはるかに信頼性が高いでしょう。 WPが空白を変更したり、何を持っている場合、正規表現は壊れる可能性があります。 – Anthony

答えて

2

このために働く正規表現です...

$str = '<meta name="generator" content="WordPress 3.2" />'; 
preg_match('/meta name="generator" content="WordPress [0-9]+\.[0-9]" /', $str, $matches); 
preg_match('/[0-9]+\.[0-9]/', $matches[0], $matches1); 
$version = $matches1[0]; 
echo "Wordpress version is = $version"; 

それはず、この出力:

Wordpressのバージョンがある= 3.2

+0

ありがとうございました! – Fredrik

+0

あなたの大歓迎です。 – pthurmond

0
$data = '<meta name="generator" content="WordPress 3.2" />'; 
$pat = '<meta name="generator" content="WordPress (\d*\.?\d*)" />'; 
if(($match = preg_match($pat, $data)) !== false){ 
    echo $match[1]; 
}else{ 
    echo "not found"; 
} 
0
preg_match('|<meta name="generator" content="WordPress (.*?)" />|', $where_to_search_for, $match); 
print_r($match); 
0

かなり古い質問ですが好奇心から、組み込み機能を使ってWordPressのバージョンを使用するのはどうですか?

<?php echo get_bloginfo('version');?> 

この方法では、さえジェネレータメタが削除され、あなたは$wp_version VARから正確なバージョンを取得します。

関連する問題