Teller specifiek woord op website
Hallo,
Ik ben redelijk nieuw in PHP land en kom niet uit een scriptje wat ik wil maken.
Ik zou graag zien dat een PHP script telt hoe vaak de woorden 'Ajax' en 'PSV' voorkomen op de voorbeeld-url: http://feyenoord.nl/nieuws.html
Kan iemand mij verder helpen? Ik heb wel het een en ander geprobeerd, maar kom er niet uit terwijl het volgens mij echt heel simpel zou moeten zijn.
Thanx, enne de beste wensen voor é nieuwe jaar hé!
Ik ben redelijk nieuw in PHP land en kom niet uit een scriptje wat ik wil maken.
Ik zou graag zien dat een PHP script telt hoe vaak de woorden 'Ajax' en 'PSV' voorkomen op de voorbeeld-url: http://feyenoord.nl/nieuws.html
Kan iemand mij verder helpen? Ik heb wel het een en ander geprobeerd, maar kom er niet uit terwijl het volgens mij echt heel simpel zou moeten zijn.
Thanx, enne de beste wensen voor é nieuwe jaar hé!
Het kan zo:
Zoiets dacht ik...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$psv = 0;
$ajax = 0;
$other_words = 0;
$pagina = file_get_contents("http://feyenoord.nl/nieuws.html");
$array = str_word_count($pagina,1);
foreach($array as $value){
if($value == "psv"){
$psv++;
}else if($value == "ajax"){
$ajax++;
}else{
$other_words++;
}
}
echo("Psv word:".$psv." Keer genoemd.<br />");
echo("Ajax word:".$ajax." Keer genoemd.<br />");
echo("Andere Woorden:".$other_words." Keer genoemd.<br />");
?>
$psv = 0;
$ajax = 0;
$other_words = 0;
$pagina = file_get_contents("http://feyenoord.nl/nieuws.html");
$array = str_word_count($pagina,1);
foreach($array as $value){
if($value == "psv"){
$psv++;
}else if($value == "ajax"){
$ajax++;
}else{
$other_words++;
}
}
echo("Psv word:".$psv." Keer genoemd.<br />");
echo("Ajax word:".$ajax." Keer genoemd.<br />");
echo("Andere Woorden:".$other_words." Keer genoemd.<br />");
?>
Zoiets dacht ik...
Gewijzigd op 01/01/1970 01:00:00 door Jeffrey H
Het kan nog even korter:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$sContent = file_get_contents('http://feyenoord.nl/nieuws.html');
$iAjax = substr_count($sContent, 'Ajax');
$iPsv = substr_count($sContent, 'PSV');
echo 'Ajax: '.$iAjax.' keer <br/>';
echo 'Psv: '.$iPsv.' keer <br/>';
?>
$sContent = file_get_contents('http://feyenoord.nl/nieuws.html');
$iAjax = substr_count($sContent, 'Ajax');
$iPsv = substr_count($sContent, 'PSV');
echo 'Ajax: '.$iAjax.' keer <br/>';
echo 'Psv: '.$iPsv.' keer <br/>';
?>
Ow, die kende ik nog niet :P
Bedankt weer! Het werkt super.
Als als ik één resultaat wil.
Dus niet:
Ajax: 3 keer
PSV: 2 keer
maar:
In totaal komt er "5x" een andere club voor.
Ik heb iets geprobeerd van:
maar dat werk helaas niet...
Als als ik één resultaat wil.
Dus niet:
Ajax: 3 keer
PSV: 2 keer
maar:
In totaal komt er "5x" een andere club voor.
Ik heb iets geprobeerd van:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$sContent = file_get_contents('http://feyenoord.nl/nieuws.html');
$iAjax = substr_count($sContent, 'Ajax');
$iPsv = substr_count($sContent, 'PSV');
echo 'In totaal komt er '.$iAjax.'+ '.$iPsv.' een andere club voor.';
?>
$sContent = file_get_contents('http://feyenoord.nl/nieuws.html');
$iAjax = substr_count($sContent, 'Ajax');
$iPsv = substr_count($sContent, 'PSV');
echo 'In totaal komt er '.$iAjax.'+ '.$iPsv.' een andere club voor.';
?>
maar dat werk helaas niet...
Mischien omdat de site niert meer bestaat?
Ik kom uit op:
http://www.feyenoord.nl/pages/homepage/s2/homepage.aspx
Ik kom uit op:
http://www.feyenoord.nl/pages/homepage/s2/homepage.aspx
Dank je Jeffrey,
Nee dat is een voorbeeld url. Ik heb em geprobeerd op de url waar ik em voor wil gebruiken, maar daar werkte dit niet :-(
Ik heb ook al wat andere mogelijkheden geprobeerd, maar het lukt me niet...
Iemand anders?
Thanx,
Stijn
Nee dat is een voorbeeld url. Ik heb em geprobeerd op de url waar ik em voor wil gebruiken, maar daar werkte dit niet :-(
Ik heb ook al wat andere mogelijkheden geprobeerd, maar het lukt me niet...
Iemand anders?
Thanx,
Stijn
Wat werkt er dan niet? Das misschien ook handig om te weten :-D.
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$sContent = file_get_contents('http://feyenoord.nl/nieuws.html');
$iAjax = substr_count($sContent, 'Ajax');
$iPsv = substr_count($sContent, 'PSV');
echo 'In totaal komt er ' . $iAjax + $iPsv . ' een andere club voor.';
?>
$sContent = file_get_contents('http://feyenoord.nl/nieuws.html');
$iAjax = substr_count($sContent, 'Ajax');
$iPsv = substr_count($sContent, 'PSV');
echo 'In totaal komt er ' . $iAjax + $iPsv . ' een andere club voor.';
?>
Dank je SanThe, dus een kwestie van puntjes weghalen :)
Bedankt!
Bedankt!
Soory voor de bump, maar de laatste code van SanThe werkt bij mij toch niet helemaal correct...
De eerste ($iAjax) wordt niet meegeteld in de echo.
Ik heb vanalles veranderd met punjes en hoofdletters, maar het telt em gewoon niet mee. Zelfs als ik de 2 omwissel pakt hij de eerste niet. Zeer vreemd...
Anyone an answer?
Alvast bedankt weer,
Stijn
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$sContent = file_get_contents('http://feyenoord.nl/nieuws.html');
$iAjax = substr_count($sContent, 'Ajax');
$iPsv = substr_count($sContent, 'PSV');
echo 'In totaal komt er ' . $iAjax + $iPsv . ' een andere club voor.';
?>
$sContent = file_get_contents('http://feyenoord.nl/nieuws.html');
$iAjax = substr_count($sContent, 'Ajax');
$iPsv = substr_count($sContent, 'PSV');
echo 'In totaal komt er ' . $iAjax + $iPsv . ' een andere club voor.';
?>
De eerste ($iAjax) wordt niet meegeteld in de echo.
Ik heb vanalles veranderd met punjes en hoofdletters, maar het telt em gewoon niet mee. Zelfs als ik de 2 omwissel pakt hij de eerste niet. Zeer vreemd...
Anyone an answer?
Alvast bedankt weer,
Stijn
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$sContent = file_get_contents('http://feyenoord.nl/nieuws.html');
$iAjax = substr_count($sContent, 'Ajax');
$iPsv = substr_count($sContent, 'PSV');
$totaal = $iAjax + $iPsv;
echo 'In totaal komt er ' . $totaal . ' een andere club voor.';
?>
$sContent = file_get_contents('http://feyenoord.nl/nieuws.html');
$iAjax = substr_count($sContent, 'Ajax');
$iPsv = substr_count($sContent, 'PSV');
$totaal = $iAjax + $iPsv;
echo 'In totaal komt er ' . $totaal . ' een andere club voor.';
?>
weet niet of het er mee te maken zou kunnen hebben, maar let ook op de hoofdletters ;)
Thanx.
Ik had idd al een paar regels toegevoegd met AJAX, PSV, psv, Psv etc
Het werkt nu goed!
Stijn
Ik had idd al een paar regels toegevoegd met AJAX, PSV, psv, Psv etc
Het werkt nu goed!
Stijn
Om het scriptje hoofdletterongevoeling te maken:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$sContent = file_get_contents('http://feyenoord.nl/nieuws.html');
$iAjax = substr_count(strtolower($sContent), 'ajax');
$iPsv = substr_count(strtolower($sContent), 'psv');
$iTotaal = $iAjax + $iPsv;
echo 'In totaal komt er ' . $iTotaal . ' een andere club voor.';
?>
$sContent = file_get_contents('http://feyenoord.nl/nieuws.html');
$iAjax = substr_count(strtolower($sContent), 'ajax');
$iPsv = substr_count(strtolower($sContent), 'psv');
$iTotaal = $iAjax + $iPsv;
echo 'In totaal komt er ' . $iTotaal . ' een andere club voor.';
?>
Ik wist dat er zoiets bestond, maar had al zoveel vragen gesteld... Super bedankt weer!
Vragen stellen staat natuurlijk altijd vrij! Het is veel dommer om met je vragen te blijven zitten...
Natuurlijk wel eerst altijd even zelf zoeken of je een antwoord kunt vinden ;-)
Natuurlijk wel eerst altijd even zelf zoeken of je een antwoord kunt vinden ;-)
Als je strtolower om de file_get_contents set hoef je het maar 1 keer te doen. In het voorbeeld gebeurt het maar 2 keer, alleen als je het echt vaker doet kan het wel uitmaken.
'TJVB:
Daar heb je gelijk in. Maar houd er wel rekening mee dat die bewerking dan niet meer terug te draaien is. Als je $sContent nog eens zou willen gebruiken om bijvoorbeeld tekst te echoën, zitten daar dan geen hoofdletters meer in...Als je strtolower om de file_get_contents set hoef je het maar 1 keer te doen. In het voorbeeld gebeurt het maar 2 keer, alleen als je het echt vaker doet kan het wel uitmaken.
Vandaar mijn keuze om het pas bij de substr_count() functie toe te passen ;-)
Dit scriptje haalt alle clubs uit de eredivisie een tekst, en print ze apart.
De kern van het verhaal is dit:
Ik heb een reguliere expressie gebruikt met \b (word boundary), omdat bij bijvoorbeeld een club als 'AZ" ook
spinazie
spinaziebed
spinazieblad
suikerglazuur
tandglazuur
terrazzo
terrazzovloer
matched. (in totaal 501 woorden uit de 2005 woordenlijst van opentaal).
De kern van het verhaal is dit:
Ik heb een reguliere expressie gebruikt met \b (word boundary), omdat bij bijvoorbeeld een club als 'AZ" ook
spinazie
spinaziebed
spinazieblad
suikerglazuur
tandglazuur
terrazzo
terrazzovloer
matched. (in totaal 501 woorden uit de 2005 woordenlijst van opentaal).
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
$sText = " Huntelaar niet geschorst tegen AZ
Klaas-Jan Huntelaar staat op zondag 13 januari waarschijnlijk wel aan de aftrap van Ajax - AZ. Diverse media meldden woensdag dat de spits van Ajax geschorst zou zijn voor de topper, maar waarschijnlijk heeft de KNVB zich vergist.";
$aClubs = array('PSV','Feyenoord','Ajax','Groningen','Twente','Roda JC','Heerenveen','Utrecht','AZ','NAC','Vitesse','Graafschaap','VVV','NEC','Heracles','Sparta','Willem II','Excelsior');
$aResults = array();
$i = 0;
foreach ($aClubs as $sClub) {
preg_match_all("#\b" . $sClub . "\b#i", $sText, $aMatches);
$iMatches = count($aMatches[0]);
if ($iMatches > 0) {
$aResults[$sClub] = $iMatches;
}
}
print "De volgende clubs komen voor:\n";
foreach ($aResults as $sClub => $iResult) {
print $sClub . " " . $iResult . " keer\n";
}
?>
$sText = " Huntelaar niet geschorst tegen AZ
Klaas-Jan Huntelaar staat op zondag 13 januari waarschijnlijk wel aan de aftrap van Ajax - AZ. Diverse media meldden woensdag dat de spits van Ajax geschorst zou zijn voor de topper, maar waarschijnlijk heeft de KNVB zich vergist.";
$aClubs = array('PSV','Feyenoord','Ajax','Groningen','Twente','Roda JC','Heerenveen','Utrecht','AZ','NAC','Vitesse','Graafschaap','VVV','NEC','Heracles','Sparta','Willem II','Excelsior');
$aResults = array();
$i = 0;
foreach ($aClubs as $sClub) {
preg_match_all("#\b" . $sClub . "\b#i", $sText, $aMatches);
$iMatches = count($aMatches[0]);
if ($iMatches > 0) {
$aResults[$sClub] = $iMatches;
}
}
print "De volgende clubs komen voor:\n";
foreach ($aResults as $sClub => $iResult) {
print $sClub . " " . $iResult . " keer\n";
}
?>




