---
title: "fgets - vb & php"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/47644-fgets-vb-php"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "davids"
published: "2002-07-10T15:31:45.000Z"
updated: "2002-07-10T21:56:07.000Z"
replies: 7
views: 203
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/47644-fgets-vb-php"
---

# fgets - vb & php

## #1 — davids, 2002-07-10T15:31Z

Hejsan!

Sitter och experimenterar med Visual Basic och PHP... Har gjort en liten server i VB som helt enkelt tar emot en sträng och skickar tillbaka ett svar. Det jobbiga är att jag måste ange svarets längd i PHP, jag måste alltså veta hur många tecken jag kommer få tillbaka. Annars "hänger sig" sidan...

Min fråga är: Hur gör jag om jag inte vet hur många tecken jag ska få tillbaka?

```
<?
$server=fsockopen("xxx.xxx.xx.xx","xx",&$errno,&$errstr,30);

if($server != true) {
print "Kunde inte ansluta till servern";
exit;
}

$kommando = "evil php was here";
fputs($server, $kommando);

$resultat = fgets($server, 1);

fclose($server);

print $resultat;
?>
```

Permalänk: https://www.webforum.nu/p/47644

## #2 — SPiN, 2002-07-10T15:35Z

Du kör en loop bara:

```
...
$serverResult = "";
while( !feof( $server ) )
     $serverResult .= fgets( $server, 128 );
...
```

Istället för:

```
$result = fgets( $server, 1 );
```

Alltså. :)

Permalänk: https://www.webforum.nu/p/719426

## #3 — davids, 2002-07-10T15:51Z

Gjorde en liten upptäckt... Verkar som jag inte behöver loopa...
Om man stänger servern när PHP-sidan står och "tuggar" så får den resultatet, men inte annars... Hmmm... Verkar alltså inte spela någon roll om jag använder din loop eller ej... Vad kan man göra åt det?

RED: Vill bara förtydliga... Den tuggar alltså fortfarande även om jag använder mig av loopen...

Permalänk: https://www.webforum.nu/p/719439

## #4 — SPiN, 2002-07-10T16:47Z

Skicka med ett par avslutningsgjuck till klienten, som stänger ner då detta upptäcks.

T.ex.

```
$serverResult = "";
$noteof = true;
while( $noteof ) {
     $noteof = ( !feof( $server ) );
     $tmpStr = fgets( $server, 8 );

     if( $tmpStr == "/[[END]]" || ( !$noteof ) ) {
          $noteof = false;
     }
     else {
          $serverResult .= $tmpStr;
     }
}
```

När servern har skickat den information som den skulle skicka, skickar du med ytterligare 8 tecken i form av /\[\[END\]\], så att klienten vet att överföringen är slut.

Permalänk: https://www.webforum.nu/p/719464

## #5 — davids, 2002-07-10T17:20Z

Det fungerade inte... Rent teoretiskt sett måste väl meddelandet vara max 8 tecken (16, 24 osv) för att detta ska funka eftersom den läser 8 i taget... Annars borde den väl inte få in hela "end-kommandot-texten" i samma variabel?

Men jag ändrade så att den läser tecken för tecken tills den upptäcker ett visst tecken( i detta fallet \|). Så nu verkar det funka... 

Tack för hjälpen på vägen!

/D

Permalänk: https://www.webforum.nu/p/719481

## #6 — SPiN, 2002-07-10T19:56Z

> Det fungerade inte... Rent teoretiskt sett måste väl meddelandet vara max 8 tecken (16, 24 osv) för att detta ska funka eftersom den läser 8 i taget... Annars borde den väl inte få in hela "end-kommandot-texten" i samma variabel?

Precis. På vilket sätt fungerade det inte? Tuggade sidan ändå? Var ditt meddelande verkligen /\[\[END\]\] ( Det är ju åtta tecken )?

Permalänk: https://www.webforum.nu/p/719566

## #7 — davids, 2002-07-10T20:58Z

Eftersom den läser 8 tecken i taget så borde det ju inte fungera om serverns svar inte är jämt, exempelvis 8,16, 24 tecken osv... Det fungerade om jag gav ett svar på åtta tecken, men kortade jag ner det till sju så tuggade den. Alltså sidan laddas då aldrig färdig, utan IE-ikonen bara snurrar å snurrar...

Mitt meddelande var exakt det ja... Har testat att skicka det både tillsammans med den andra texten och också separat. Men jag löste det genom att bara använda mig av ett tecken...

Permalänk: https://www.webforum.nu/p/719600

## #8 — SPiN, 2002-07-10T21:56Z

Ah! :r
Det tänkte ju inte dumma jag på, såklart... Du har helt rätt, och nu förstår jag varför det inte fungerade. :)

Permalänk: https://www.webforum.nu/p/719643

---

Tråden på webben: https://www.webforum.nu/amne/php/47644-fgets-vb-php
