내가 행의 교체 기능을 썼다
function replace($row){
$replaced = preg_replace_callback("~(\<span class=\"itemopener\"\>)(\d{1,5})\s(top\</span\>.*\<span class=\"allopener\"\>).{3}(\</span\>)~iU", function($matches){
$str = $matches[1] . $matches[3] . $matches[2] . $matches[4];
return $str;
}, $row);
return $replaced;
}
$s = '<span class="itemopener">82 top</span> <span class="allopener">all</span>';
$replaced = replace($s);
echo "<pre>" . print_r($replaced, 1) . "</pre>";
exit();
Working demo of the function
파일을 한 행씩 가져 와서 교체 할 범위가 있는지 간단히 확인하면이 기능으로 보낼 수 있습니다. 그러나 지정한 파일 수가 많으면 시간이 오래 걸릴 것입니다 . 당신이 내 대답 사용할 수 있습니다 경로에있는 모든 파일 검사를 위해
: 만이 .htm 파일을 읽고 수정하고, 당신이 원하는 무엇을 구조 당신에게 반환 할 수 있습니다 약간의 편집 후 scandir 을 ..
그런 다음 스캔 된 모든 HTM 파일을이 같은 그들을 처리 : 실행 그리고 ..
$allScannedFiles = array("......");
foreach($allScannedFiles as $key => $path){
$file = file_get_contents($path);
$lines = explode(PHP_EOL, $file);
$modifiedFile = "";
foreach($lines as $line){
if(strpos($line, "span") && strpos($line, "itemopener")){
$line = replace($line);
}
$modifiedFile .= $line . PHP_EOL;
}
file_put_contents($path, $modifiedFile);
}
나는 머리에서 이렇게 몇 가지 테스트가 필요하다이 하나 개의 조각을 썼다 을 가서 자신에게 커피를 만들고 기다립니다) 시간이 초과되면 PHP 시간 초과를 늘릴 수 있습니다. 이 작업을 수행하는 방법에 & 여기에 대답 질문한다 : how to increase timeout in php
는 다른 방법이있는 DOMDocument로로드 파일을 시도하고 파일에 어딘가에 유효한 HTML이 아닌 경우 documentation of DomDocument이 그러나, 그것은 당신에게 문제가 발생할 수 있습니다 클래스에 교체 할 수 있습니다 ..
내가 언데드인지 보자. rstand : 스크립트가 8000 개의 HTML 파일을 읽고 한 줄을 검색하고 각 파일에서 다른 줄로 바꾸려면 스크립트를 원하십니까? –
디렉토리에 있습니다. 8000 htm 파일. 각 파일에는 약 30 개의 타겟 스 니펫이 변경되어야하는 큰 텍스트 슬랩이 있습니다. 그래서 약 8000 * 30 대체. – Adrian33
여기 예제 페이지가 있습니다 : http://hackerbra.in/unlisted/best_1360386661.htm – Adrian33