Avatar billede cyberdude Nybegynder
05. september 2006 - 15:58 Der er 7 kommentarer og
1 løsning

fsockopen, fputs, fgets, får kun "Success"

Hejsa

Jeg prøver at hente noget data ind fra en side

Du kan se det data der bliver "smidt" til mig via dette link :
http://api.v5.haleiwa.intronetworks.com/api/xmlweb.ashx?requesttype=logIn&username=Attendee1&password=Attendee1

data er UDELUKKENDE FIKTIVE / TEST data!!!

jeg forsøger mig så med dette her script :
<?
$whattoget = "/api/xmlweb.ashx?requesttype=logIn&username=Attendee1&password=Attendee1";

// Etabler forbindelse til intronetworks db
$socket = fsockopen("http://api.v5.haleiwa.intronetworks.com", 80, &$errnr, &$errstr) or die($errnr." -- ".$errstr);
// Send query til db'en
fputs($socket, $whattoget."\n");
?>

Og det eneste den retunere er "0 -- Success"

Jeg vil gerne have den til at "samle" alle de data den får retuneret op i en variabel, men hvordan??

Der er mere data (statisk) i scriptet - og de bliver ikek vist, så går ud fra at scriptet "dør" på "or die(.....)" sectionen af ovenstående kode-stump....

Nogen bud ??
Avatar billede cyberdude Nybegynder
05. september 2006 - 16:22 #1
det jeg har brug for at at åbne en forbindelse til serveren
http://api.v5.haleiwa.intronetworks.com
og så derefter sende en forespørgsel til den ala :
/api/xmlweb.ashx?requesttype=logIn&username=Attendee1&password=Attendee1

Men når jeg forsøger med et simpelt script at eks. conecte til www.php.net viser den fint siden (med nogle ekstra data i toppen), men forsøger jeg derimod med http://api.v5.haleiwa.intronetworks.com stopper den p åen errno & errstr som defineres i fsockopen....
hmmm
Avatar billede coderdk Praktikant
05. september 2006 - 17:15 #2
fsockopen skal se sådan ud:

$socket = fsockopen("api.v5.haleiwa.intronetworks.com", 80, &$errnr, &$errstr) or die($errnr." -- ".$errstr);

Men hvorfor ikke bare bruge:

$data = file_get_contents( "http://api.v5.haleiwa.intronetworks.com/api/xmlweb.ashx?requesttype=logIn&username=Attendee1&password=Attendee1" );

?
Avatar billede coderdk Praktikant
05. september 2006 - 17:16 #3
Og hvis du bruger fsockopen skal du formulere et request:

// Send query til db'en
fwrite( $socket, "GET $whattoget HTTP/1.0\nHost: api.v5.haleiwa.intronetworks.com\nConnection: Close\n\n" );
Avatar billede cyberdude Nybegynder
05. september 2006 - 17:40 #4
jeg har fået "hul" igennem nu... men via et class. script fundet på hotscripts....

Så nu skal jeg blot have soteret lidt i de data jeg får ind....

Hvad vil være den beste / nemmeste måde at bruge hvis jeg feks. får følgende kode :
- <user>
  <id>1109</id>
  <uservals>0 Winfield Gomez info@intronetworks.com Butler University IT Solutions Architect Elk Rapids MI USA (658) 667-6944 x 810 http://www.intronetworks.com Peace Microsoft Education 0 4 1 5 0 8/2/2006 0 0</uservals>
  </user>
og ønsker at der i en variabel $id kun skal stå "1109" og resten af "koden" skal blot smides væk ???
Avatar billede cyberdude Nybegynder
05. september 2006 - 17:42 #5
dataene i <uservals> er sepereret med følgende karaktere
char csep = '\u0009' ;

Siger det nogen noget hvad det er de har brugt, er det "tab", "space" dell. eller hvad ??
Avatar billede cyberdude Nybegynder
05. september 2006 - 17:45 #6
smid et svar så får du point - og lidt til hvis du kan hjælpe med det sidste jeg spørger om :-)
Avatar billede coderdk Praktikant
05. september 2006 - 19:36 #7
\u0009 er \t som er tab, ja :)

det er xml, men jeg ville vælge at bruge noget preg_match:

if ( preg_match( "!<id>(\d+)</id>.*?<uservals>(.*?)</uservals>!si", $txt, $m ) )
{
  $id = $m[1];
  $uservals = $m[2];
  $uservalsArray = explode( "\t", $uservals );
}

:)
Avatar billede cyberdude Nybegynder
06. september 2006 - 10:41 #8
super, det funger :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester