MVC, PHP를 사용하여 전자 상거래 웹 사이트에서 작업하고 있습니다. 설명이라는 필드가 있습니다. 사용자는 설명 필드에 여러 개의 제품 ID를 입력 할 수 있습니다. 예를 {productID = 34}, {productID = 58}
PHP를 통해 문자열의 다중 문자열 발생 검색
를 들어
나는이 분야에서 모든 제품 ID의를 얻기 위해 노력하고 있어요. 그냥 제품 ID.
어떻게해야합니까?
MVC, PHP를 사용하여 전자 상거래 웹 사이트에서 작업하고 있습니다. 설명이라는 필드가 있습니다. 사용자는 설명 필드에 여러 개의 제품 ID를 입력 할 수 있습니다. 예를 {productID = 34}, {productID = 58}
PHP를 통해 문자열의 다중 문자열 발생 검색
를 들어
나는이 분야에서 모든 제품 ID의를 얻기 위해 노력하고 있어요. 그냥 제품 ID.
어떻게해야합니까?
이 솔루션은 캡처 그룹을 사용하지 않습니다. 오히려, \K
을 사용하여 전체 문자열 요소가 괄호를 사용하여 캡처되는 요소가되도록합니다. 배열 요소 수를 50 % 줄이므로이 방법을 사용하는 것이 좋습니다.
$description="{productID = 34}, {productID = 58}";
if(preg_match_all('/productID = \K\d+/',$description,$ids)){
var_export($ids[0]);
}
// output: array(0=>'34',1=>'58')
// \K in the regex means: keep text from this point
Without using regex, something like this should work for returning the string positions:
<code>
$html = "dddasdfdddasdffff";
$needle = "asdf";
$lastPos = 0;
$positions = array();
while (($lastPos = strpos($html, $needle, $lastPos))!== false) {
$positions[] = $lastPos;
$lastPos = $lastPos + strlen($needle);
}
// Displays 3 and 10
foreach ($positions as $value) {
echo $value ."<br />";
}
</code>
굉장한 아룬. 좋은 대답. 하지만 내가 원하는 것은 제품 ID라는 특정 문자열을 검색하는 것입니다. 이 문자열 제품 ID는 설명 필드에서 여러 번 반복 될 수 있습니다. 각 인스턴스마다 ID가 다릅니다. 어떻게해야합니까? 고마워. – Akintunde007
답변이 OP의 입력 문자열을 무시하기 때문에 투표가 중단되었습니다. 전체 답변이 도움이되지 않습니다. 이 답변을 수정하거나 삭제하십시오. – mickmackusa
[일치/일치 항목 : //regex101.com/r/aGs2VQ/1) ('\ d'는 숫자 [0-9]와 일치합니다). [demo at eval.in] (https://eval.in/686248) –
@bobblebubble 휴대 전화에 입력하지 않으려는 몇 가지 이유 때문에 SO 시민권을 연습하고 답변을 게시 할 충성을 거부하십시오. 의견으로. – mickmackusa