On Tue, 22 Jul 2003 01:34:27 +0200
"Pimin Konstantin Kefaloukos" <fakemail@fakemail.dk> wrote:
> $ports = array(21,22,23,80,110);
> while($current = array_shift($ports)) {
> @$fp = fsockopen(
www.microsoft.com, $current, $errnum, $errstr, 1);
> if($fp) {
> echo $current.": ".getservbyport($current,"tcp")."<br>";
> fclose($fp);
> }
> }
> ....
> PROBLEM: hvis ports-array bliver for langt, crasher apache øjeblikkeligt.
> Nogen der kan lure hvorfor?
>
Måske den der 'while($current = array_shift($ports)) {'.
Men det er bare et løst gæt.
Jeg ville nok bruge:
$ports = array(21,22,23,80,110);
foreach ($ports as $current) {
$fp = @fsockopen('
www.microsoft.com', $current, $errnum, $errstr, 1);
if ($fp) {
echo $current . ': ' . getservbyport($current, 'tcp') . '<br />';
@fclose($fp);
}
}
@ undertrykker fejlmeddelelser fra funktioner, så den er til ingen nytte i
sammenhængen '@$fp'.
Desuden vil det være smart at bruge @ sammen med fclose() når man bruger den
sammen med fsockopen(), sa fclose ellers vil melde fejl når der ikke er en
resource at lukke i $fp.
Og det ville fsockopen() jo have meldt fejl om da den ikke kunne åbne den, så
kun at bruge en er lidt fjollet, hvis du forstår.
Mvh.
Madsen
--
- - - - - - - - - - - - - - + - - - - - - - - - - - - - - +
| Anders K. Madsen
http://lillesvin.linux.dk |
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| There are 10 types of people in the world... |
Those who understand binary - and those who don't.
| -
http://bash.org |
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - +