제 질문은 매우 간단합니다. 나는 그 대답도 희망한다. 의 나는 다음과 같은 PHP는 문자열이 있다고 가정 해 봅시다 : 배열이있는 preg_replace 문자열
<!DOCTYPE html>
<html>
<head>
<title>test file</title>
</head>
<body>
<div id="dynamicContent">
<myTag>PART_ONE</myTag>
<myTag>PART_TWO </myTag>
<myTag> PART_THREE</myTag>
<myTag> PART_FOUR </myTag>
</div>
</body>
</html>
이의는이 $ 내용입니다 가정 해 봅시다. 이제 단어가 하나 인 4 개의 맞춤 태그 (myTag)가 있음을 알 수 있습니다. (PART_ONE, PART_TWO 등) 4 개의 다른 문자열로 바꾸고 싶습니다.
$replace = array("PartOne", "PartTwo", "PartThree", "PartFour");
내가 이런 짓을하지만, 성공적으로 작동하지 않습니다 : 그 후자의 4 문자열 배열에있는
$content = preg_replace("/<myTag>(.*?)<\/myTag>/s", $replace, $content);
그래서, 나는 (그것이 4를 발견) myTags를 검색하고 교체 할 어레이의 한 항목으로 첫 번째 항목은 $ replace [0], 두 번째 항목은 $ replace [1] 등으로 대체해야합니다. 그런 다음 "새로운"내용을 문자열이 아닌 배열로 반환하므로 사용할 수 있습니다. 추가 파싱.
어떻게 알 수 있습니까?
것은 그것은 PART_ONE 등 ... – Floris
http://stackoverflow.com/questions/1732348/regex-match-open-tags-except를 검색 할 훨씬 간단 많은 것 : XML, 당신은 파서를 원하는 -xht ml-self-contained-tags – TFennis
오, 그래, 나는 myTag의 가치를 모른다는 것을 잊어 버렸다. 그래서 PART_ONE은 "MY_ELEPHANT"가 될 수있다. html 템플릿에 무엇이든 입력 할 수 있어야하며 코드는 myTag 태그 사이에 무엇이 있는지 볼 것입니다. 또한 나는 태그의 속성을 파싱하지 않기 때문에 "정규식으로 html을 파싱 할 수 없다"는 말은하지 않는다고 생각합니다. 태그의 속성을 파싱하지 않기 때문에 간단하고 안전한 작업임이 분명합니다. 정규식. –