2017-10-03 1 views
-1
$pId = "MP000000001648426"; 

以下のコードは機能しません。どうしたの?preg_matchの中でPHP変数を使うには?

preg_match_all('/<span id="price_$pId".*?>(.*?)\<\/span>/', $product ,$matches); 

しかし、文字列(pId)をpreg_matchに直接追加すると機能します。

preg_match_all('/<span id="price_MP000000001648426".*?>(.*?)\<\/span>/', $product ,$matches); 

しかし、私はpregの試合の中で変数を提供したいと思います。どうやってするの?

preg_match_all("/<span id=\"price_$pId\".*?>(.*?)\<\/span>/", $product, $matches); 

+2

二重引用符を使用します。一重引用符で囲まれた文字列リテラル内の変数は、補間できません。 –

+0

@WiktorStribiżewそれは問題を解決しました。ポストイットは答えとして – Dexter

+1

これはあまりにも多くの質問、回答を投稿する必要はありません。 –

答えて

1

の変化、それを(あなたが本当の"ようにPHP変数が変換されている必要があることに注意してください)

代替ソリューション:

preg_match_all('/<span id="price_'. $pId . '".*?>(.*?)\<\/span>/', $product, $matches);