2016-08-16 2 views
1

나는 explode를 사용하여 웹 사이트에서 긁어 모으는 정보를 조작하고 있습니다. 내가 원하는 것을 반환하고 나머지 항목을 배열에 추가 할 수 있도록 문자열의 특정 항목을 제거하려고합니다.이 문자열의 일부를 PHP에서. * 정규 표현식으로 대체하려면 어떻게해야합니까?

$pageArray = explode('<td class="player-label"><a href="/nfl/players/antonio-brown.php?type=overall&week=draft">', $fantasyPros); 

나는 안토니오 갈색 부분을 생략하고 정규 표현식 또는 무엇이든을 사용하고자는 특정 이름 만 목록에있는 모든 이름에 대한보고에 추가되지 않도록 교체하는 것이 가장 좋습니다 내 정렬. 내가 여기서 사용해야 할 것에 대한 제안이 있습니까? 어떤 도움을 주셔서 감사합니다.

+2

'preg_split'을 찾은 것 같습니다. – revo

+2

[DOMDocument] (http://php.net/manual/en/class.domdocument.php)가 폭발을 사용하여 해킹하는 대신 전체 페이지를 구문 분석하는 데 적합합니다. 그리고 당신이하고있는 다른 무엇이든지. 이것은 HTML을 사용하여 만들어졌으며, getElementById, getElementsByTagName과 같은 DOM에서 JS로 작업 할 때 사용할 수있는 대부분의 메소드와 속성, 값을 확인하고 dom을 수정하는 메소드를 포함합니다. –

+0

substr '$ players2 = $ secondpageArray [2];를 사용하여 배열의 한 값에 대해 올바르게 표시되도록 할 수있었습니다. $ players2 = substr ($ players2,106, -100); ' substr을 배열과 함께 사용하는 방법을 알 수 없으며 다른 문제는 첫 번째 숫자가 105-107 사이가 될 수 있다는 것입니다. 배열과 함께 사용하는 방법을 알아낼 수 있다면 if 문을 if 문의 길이에 따라 substr = 특정 길이의 substr ($ players2,106, -100) elseif substr ($ players2,107, -100) etc 나는 그것이 효과가있을 것이라고 생각한다. 아무도 내가 이것을 할 수있는 방법을 알고 있습니까? – Clay2023

답변

0

예를 들어 적절한 xpath 함수를 사용하여 파서 작업을하는 것처럼 보입니다. not().

<?php 

$data = <<<DATA 
<td class="player-label"> 
    <a href="/nfl/players/antonio-brown.php?type=overall&week=draft">Some brown link here</a> 
    <a href="/nfl/players/antonio-green.php?type=overall&week=draft">Some green link here</a> 
</td> 
DATA; 

$dom = new DOMDocument(); 
$dom->loadHTML($data); 

$xpath = new DOMXPath($dom); 

$green_links = $xpath->query("//a[not(contains(@href, 'antonio-brown'))]"); 
foreach ($green_links as $link) { 
    // do sth. useful here 
} 
?> 

이 그것에 어떤 antonio-brown이 없습니다 모든 링크를 출력 :
다음 코드를 생각해 보자.
td 또는 다른 요소로 쉽게 조정할 수 있습니다.

관련 문제