Aantal items / domeinen tellen werkt niet
Ik wil graag het aantal domeinen tellen in een tekst. In het onderstaande voorbeeld zijn dit 2 stuks.
Echter, de telling werkt niet, blijft op 1 staan. En als ik $i = 0; boven de foreach zet, tel hij alle items (6), terwijl het de bedoeling is dat hij alleen telt als aan de if voldaan wordt (2x).
Wat doe ik fout?
Op regel 4 zet je de teller weer op nul.
Ook al zou die alleen +1 moeten tellen als aan if voldaan wordt.
Toevoeging op 28/02/2024 18:44:58:
Excuses, te snell gereageerd. Ik krijg het ook niet direct voor elkaar
Gooi eens wat echo'tjes als debugging.
Quote:
Gooi eens wat echo'tjes als debugging.
Hij telt voor zover ik kan nagaan alleen de laatste overeenkomst. Daarom blijft teller op 1 staan. Ben er nog niet achter hoe ik dat kan fixen.
Ik heb het idee dat FILTER_VALIDATE_DOMAIN niet doet wat je ervan zou verwachten.....
Guido
Ik denk dat een reguliere expressie wel beter zal moeten werken.
Aan de beheerder: de toolbar (tekstopmaak) ontbreekt soms.
Waar en wanneer mist de toolbar dan?
https://ibb.co/6tQLgNW
Print is met m'n iPhone gemaakt. Zoals je bovenaan ziet is de site ook nog steeds via onveilige verbinding te bezoeken.
Guido
Print is met m'n iPhone gemaakt. Zoals je bovenaan ziet is de site ook nog steeds via onveilige verbinding te bezoeken.
Guido
Die SSL zal ik eens naar kijken.
Maar zulke dingen graag in het juiste forum. :-)
Gewijzigd op 29/02/2024 00:53:44 door - Ariën -
https://www.php.net/filter_var
Jij zegt:
filter_var zal hier nooit null opleveren. hij geeft een string terug die een domain is OF hij geeft FALSE terug.
Vervang NULL door FALSE en je bent er.
Quote:
Returns the filtered data, or false if the filter fails.
Jij zegt:
filter_var zal hier nooit null opleveren. hij geeft een string terug die een domain is OF hij geeft FALSE terug.
Vervang NULL door FALSE en je bent er.
Quote:
Vervang NULL door FALSE en je bent er.
Had ik al gedaan maar werkte ook niet.
Guido
Ik heb dat ook al achterwege gelaten, maar ik heb het idee dat een reg-ex betrouwbaarder is.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$value = "hallo google.nl hallo hallo www.bing.com hallo";
$array = explode(' ', $value);
$i = 0;
// Lijst van geldige extensies
$geldige_extensies = ['com', 'nl', 'org', 'net']; // Voeg hier alle gewenste extensies toe
foreach ($array as $str) {
// Controleer of het woord lijkt op een geldig domein met een geldige extensie
if (preg_match('/\b(?:www\.)?[a-zA-Z0-9-]+\.(' . implode('|', $geldige_extensies) . ')\b/', $str)) {
$i++;
}
}
echo "Aantal domeinen: " . $i;
?>
$value = "hallo google.nl hallo hallo www.bing.com hallo";
$array = explode(' ', $value);
$i = 0;
// Lijst van geldige extensies
$geldige_extensies = ['com', 'nl', 'org', 'net']; // Voeg hier alle gewenste extensies toe
foreach ($array as $str) {
// Controleer of het woord lijkt op een geldig domein met een geldige extensie
if (preg_match('/\b(?:www\.)?[a-zA-Z0-9-]+\.(' . implode('|', $geldige_extensies) . ')\b/', $str)) {
$i++;
}
}
echo "Aantal domeinen: " . $i;
?>
Guido
ten eerste de steeds uitbreidende lijst van tlds
maar ook houdt deze geen rekening met subdomeinen.
forum.phphulp.nl komt er niet doorheen.
net als namen met andere letters dan a-z köln.de bijvoorbeeld
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$value = "hallo google.nl hallo hallo www.bing.com hallo sub.voorbeeld.nl sub.example.com vöörbeeld.nl ïvoorbeeld.nl";
$array = explode(' ', $value);
$i = 0;
// Lijst van geldige extensies
$geldige_extensies = ['com', 'nl', 'org', 'net', 'at']; // Voeg hier alle gewenste extensies toe
foreach ($array as $str) {
// Controleer of het woord lijkt op een geldig domein met een geldige extensie
if (preg_match('/\b(?:[a-zA-Z0-9-]+\.)?[a-zA-Z0-9-\p{L}]+\.(' . implode('|', $geldige_extensies) . ')\b/u', $str)) {
$i++;
}
}
echo "Aantal domeinen: " . $i;
?>
$value = "hallo google.nl hallo hallo www.bing.com hallo sub.voorbeeld.nl sub.example.com vöörbeeld.nl ïvoorbeeld.nl";
$array = explode(' ', $value);
$i = 0;
// Lijst van geldige extensies
$geldige_extensies = ['com', 'nl', 'org', 'net', 'at']; // Voeg hier alle gewenste extensies toe
foreach ($array as $str) {
// Controleer of het woord lijkt op een geldig domein met een geldige extensie
if (preg_match('/\b(?:[a-zA-Z0-9-]+\.)?[a-zA-Z0-9-\p{L}]+\.(' . implode('|', $geldige_extensies) . ')\b/u', $str)) {
$i++;
}
}
echo "Aantal domeinen: " . $i;
?>
Hier werken de subdomeinen en tekens als ö en ï wel
Gewijzigd op 03/03/2024 20:52:03 door Ray Mond