2011-04-28 2 views
1

내가 NO 확장자를 가진 일부 파일 (약 500 파일)을 가지고있다.
하지만 그 내용을 보았습니다. 이상한 태그와 물건이 있습니다.PHP 추출 및 분석 _ 기본적인 질문

는 좀 html 태그가 < 같은 HREF = "HTTP가, 또한 (71.129.195.163)

... 2 호선의 예를 들어 항상 같은 IP 주소가 .. 그것에서 모든 IP addreesses을 추출해야 : //www.xyz.com ">을 여러 줄에 입력하십시오. 도메인 이름을 xyz.com과 같이 알아야합니다.

사람이 PHP는 초보자 도움을 수 있을까? 나는 전체 파일을 문자열과 모든 tht로 얻는 것을 안다. 그러나 PHP가 강력하기 때문에 이것을 성취 할 수있는 간단하고 간단한 방법을 찾고있다.

감사

답변

1

정규 표현식이 아주 좋습니다 많이.

는 파일에있는 모든 IP를 확인하는 방법은 다음과 같습니다

$ipPattern = '/(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:[.](?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}/'; 

$ips = array(); 
preg_match_all($ipPattern, $fileContents, $ips); 
$ips = $ips[0]; 

은 모든 링크를 찾으려면 :

$linkPattern = '/href(\s+)?\=(\s+)?[\'"](.+?)[\'"]/'; 

$links = array(); 
preg_match($linkPattern, $fileContents, $links); 

$link = $links[3]; 

파일의 콘텐츠는 $ 된 FileContents에 있다고 가정합니다. 모든 파일에 대해이 코드를 실행하십시오. 당신은 당신이 큰 배열로 병합 할 수있는 것보다 모든 IP를하고 도메인을 수집해야하는 경우 는 :

$allIps = array(); 
$allLinks = array(); 

// after each run of the above code do: 
$allIps = array_merge($allIps, $ips); 
$allLinks[] = $link; 
+0

안녕, 링크의 배열은 좋은 코드는 BTW ... 여러가 ... 당신이 쓴 코드 비어 있습니다 href 라인과 그것이 도메인 이름을 가지고 있기 때문에 나는 단지 첫 번째 사건을 읽으면 충분합니다 ... 당신의 도움을 위해. 어떻게 수정합니까 ... "? 나는 foreach ($ ips = $ a1) {echo $ a1;}를 사용하고 있습니다. 그러나"표시 배열 "만 표시됩니다. 그래서이 2 차원 배열이 있습니다. ?! – Heather

+0

Q2 : 또한 알고 싶습니다 방법 $ linkPattern = '/href\w?\=\w?[\'"]{1}(.+?)[\'"]{1}/'; $ ipPattern = '/ (?: 25 [0-5] | 2 [0-4] \ d | 1 \ d \ d | [1-9] \ d | \ d)? : 25 [0-5] | 2 [0-4] \ D | 1 \ D \ D | [1-9] \ D | \ d)) {3}/'; 일 – Heather

+0

는 출력을 얻을 때 배열처럼 데이터 이해하기 읽을 수있는 형식으로 배열을 덤프 할 수 있습니다 위해서 var_dump ($ a1을)를, 아마 당신은해야 할 것입니다 IP를 얻을 $ IP = $ A1 [1] – theduke