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 match 내에서 변수를 제공하고 싶습니다. 그것을하는 방법?

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); 
관련 문제