2017-10-04 13 views
-2

URLである文字列から2つの値を取り出す小さなスクリプトを作成しています。以下のコードでURLの例を見ることができます.2桁の「i =」値と長い「l =」値を引き出そうとしています。PHPで正規表現の配列インデックスを抽出する

これについていくつかの広範な検索を行いましたが、スタックオーバーフローに関するその他の質問はすべてかなり簡単でした。

私はスーパー近いよかなり確信しているが、最終的に私は、Python/Djangoの男だと私は次のコードが機能しない理由に途方に暮れてよ:

$s = "http://mwo.smurfy-net.de/mechlab#i=16&l=71a1896409db5818783971b72ba043f5f3a44fad"; 
$matches = array(); 
$result = preg_match('/^i=(?P<iVal>[0-9]+)&l=(?P<lVal>[a-z0-9]+)$/siU', $s, $matches); 
echo $matches['iVal']; 
echo $matches['lVal']; 

を私が実行されると、 2つの配列値iValとlValがどのように定義されていないかについてのエラーを取得します。

問題がコード自体か私の正規表現であるかどうかは分かりません。どんな助けもありがとう。

+0

'^'は、行の先頭に位置をアサートします。 'U'フラグなしで' i =(?P [0-9] +)&l =(?P [a-z0-9] +) 'を使用してください。ある時点で、 'l 'の後に別の変数を追加する – ctwheels

答えて

0

キャレットを削除します。

$result = preg_match('/i=(?P<iVal>[0-9]+)&l=(?P<lVal>[a-z0-9]+)$/siU', $s, $matches); 
//    here ___^