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); 

Я хотел бы, чтобы пропустить антонио~d-коричневый раздел и использовать регулярное выражение, или что-то лучше заменить его, так что он не будет искать конкретное имя, но каждое имя из списка и добавить их к моему массив. Есть ли у вас какие-либо предложения о том, что я должен использовать здесь? Я ценю любую помощь.

+2

Кажется, ищет 'preg_split' – revo

+2

Похоже, что это полезно для [DOMDocument] (http://php.net/manual/en/class.domdocument.php), чтобы разобрать всю страницу, а не взламывать ее с помощью взрыва и что бы вы ни делали. Это было сделано для работы с HTML и включает в себя большинство методов, доступных при работе с DOM в JS, например 'getElementById',' getElementsByTagName' и методы проверки атрибутов, значений и модификации dom. –

+0

Мне удалось заставить его правильно отображаться для одного значения массива, используя substr '$ players2 = $ secondpageArray [2]; $ players2 = substr ($ players2,106, -100); ' Я не могу понять, как использовать substr с массивом, а другая проблема заключается в том, что первое число может быть между 105-107. Если бы я мог понять, как использовать его с массивом и реализовать, и если оператор по строкам, если длина до первого значения substr = определенная длина, то substr ($ players2,106, -100) elseif substr ($ players2,107, -100) и т.д. Я думаю, что это сработает. Кто-нибудь знает, как я могу это сделать? – 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 или любой другой элемент.