Archief - Text bestand lezen en weergeven, maar probleem...

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

FWP

Legacy Member
Hier is mijn code:
PHP:
<?
$filename = "proxies.txt";
$fd = fopen($filename, "r");
$contents = fread($fd, filesize($filename));

fclose($fd);
$delimiter = "  ";
$splitcontents = explode($delimiter, $contents);

foreach($splitcontents as $color)
{
echo "$color<br>";
}
?>

Ik ben een beginner met web scripten, dus neem het mij niet kwalijk als het een beginnersfout is. De uitvoer is dit:

216.166.14.180:80
US
29490ms 82.148.227.62:80
GB
18574ms 84.234.75.223:80
FI
7228ms 122.180.8.100:80
...

Hoe pas ik toe dat ik zowel op tabs controleer (zoals ik nu al doe), en op new lines, tegelijkertijd?

Die "29490ms 82.148.227.62:80" moet nogmaals gesplits worden maar hangt nu aan een omdat daar een new line tussenkomt, en ik daarop niet controleer, omdat ik niet weet hoe (ik weet dat het "\n" is maar, maar niet hoe ik " " en "\n" tegelijkertijd doe).

FWP

Legacy Member
Heb het al opgelost.

PHP:
<?
$filename = "proxies.txt";
$fd = fopen($filename, "r");
$contents = fread($fd, filesize($filename));

fclose($fd);
$splitcontents = preg_split("/[\r\n\t]/", $contents);

foreach($splitcontents as $color)
{
echo "$color<br>";
}
?>

adrianhates

Legacy Member
ge moet best altijd checken of uw connectie met server of een 'connectie' met een bestand wel geldig is.

fopen geeft oftwel een resource terug ( uw bestand ) of een boolean ( false ) in het geval van falen. Als het bestand niet bestaat gaat de code gewoon vastlopen en stoppen met uitvoeren.

Uw foreach gaat uiteindelijk dan ook een melding geven dat $contents geen geldig datatype is en zal bij foreach dan ook afbreken aangezien er geen data inzit.

eventueel zoude ook nog nen is_array check kunne doen maar ik weet niet vanbuiten wat preg_split teruggeeft indien er geen resultaten zijn ( een lege array of null? ).

dus best dit doen:

Code:
<?php
$filename = "proxies.txt";
if($fd = fopen($filename, "r")){
$contents = fread($fd, filesize($filename));

fclose($fd);
$splitcontents = preg_split("/[\r\n\t]/", $contents);

foreach($splitcontents as $color)
{
echo "$color<br>";
}
}
else{
echo 'failure opening file';
}
?>

uw short tags trouwens ook achterwege laten..

FWP

Legacy Member
adrianhates zei:
ge moet best altijd checken of uw connectie met server of een 'connectie' met een bestand wel geldig is.

fopen geeft oftwel een resource terug ( uw bestand ) of een boolean ( false ) in het geval van falen. Als het bestand niet bestaat gaat de code gewoon vastlopen en stoppen met uitvoeren.

Uw foreach gaat uiteindelijk dan ook een melding geven dat $contents geen geldig datatype is en zal bij foreach dan ook afbreken aangezien er geen data inzit.

eventueel zoude ook nog nen is_array check kunne doen maar ik weet niet vanbuiten wat preg_split teruggeeft indien er geen resultaten zijn ( een lege array of null? ).

dus best dit doen:

Code:
<?php
$filename = "proxies.txt";
if($fd = fopen($filename, "r")){
$contents = fread($fd, filesize($filename));

fclose($fd);
$splitcontents = preg_split("/[\r\n\t]/", $contents);

foreach($splitcontents as $color)
{
echo "$color<br>";
}
}
else{
echo 'failure opening file';
}
?>

uw short tags trouwens ook achterwege laten..

Bedankt voor de leerzame post. ;)
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan