Hallo,
Ik heb het onderstaande script om gegevens op te halen, nu wil ik dat alle links in een keer worden verwijderd.

<?php
$regx = '/<font size="1">(.*)<\/font>?/msU';
$scrape_address = "http://www.biljartpoint.nl/index.php?page=uitslagdetail&district=57&progid=246515&f=1&poule=A&compid=1022";;
$ch = curl_init($scrape_address);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, '1');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_ENCODING, "");
$data = curl_exec($ch);
preg_match($regx, $data, $match);
strip_tags($match, '<br>');
$match[1] = str_replace('<a href="index.php?page=pr&bondsnr=139366&klasse=B1&seizoen=2014-2015&d=57">', ' ', $match[1]);

echo $match[1];
?>
Kan iemand mij helpen?
Als ik het goed begrijp wil je dat de namen geen links meer zijn, kijk een naar preg-replace().


<?php
$regx = '/<font size="1">(.*)<\/font>?/msU';
$scrape_address = "http://www.biljartpoint.nl/index.php?page=uitslagdetail&district=57&progid=246515&f=1&poule=A&compid=1022";
$ch = curl_init($scrape_address);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, '1');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_ENCODING, "");
$data = curl_exec($ch);
preg_match($regx, $data, $match);

echo preg_replace('/<a href="(.*?)">/', '', $match[1]);
?>
'misschien ook de afsluitende </a> meepakken bij de replace?
Nooit HTML parsen met Regexen, HTML is te complex om dat met regexen te kunnen. Wat denk je bijv. van newlines in je tags, van eventuele attributen, de optionele sluittags (bij sommige elementen), etc?

Om links te verwijderen zul je een HTML parser moeten gebruiken. Bijv. die van PHP:
<?php
$content = '';

$dom = new \DOMDocument();
$dom->loadHTML($content);

$as = array();
foreach ($dom->getElementsByTagName('a') as $a) {
$as[] = $a;
}

foreach ($as as $a) {
$a->parentNode->removeChild($a);
}
// we moeten het in 2 loopen doen, omdat de parser anders de weg kwijt raakt

$textWithoutLinks = $dom->saveHtml();
?>

Reageren