Gå til innhold

PHP skript som sender XML over til annen server


Anbefalte innlegg

Hei,

noen som kan hjelpe meg litt her?

Sitter nemlig å studerer hvordan jeg skal kunne få sendt XML informasjon til en annen server (fks. "10.0.0.52:15458").

Output koden bør helst bli slik <ar info="value">, jeg har ikke de argeste peilingen på dette, så derfor jeg spør om hjelp :p vil gjerne den skulle sende flere i samme slengen :) er dette mulig?

Endret av Noxe
Lenke til kommentar
Videoannonse
Annonse
Om du har all data i f.eks. et database kan du lage et script som skriver ut et XML-dokument. Så kan du la scriptet på din andre server hente opp denne filen via f.eks. cURL eller file_get_contents. Om jeg forsto spørsmålet ditt riktig? :)

6111958[/snapback]

Det er veldig viktig at det går på den måten jeg sa her :dontgetit: for et server program mottar infoen på den måten. Men jeg skjønner ikke direkte hvordan jeg skal klare dette over PHP?

Det er nesten som telnet, men da vil den ikke svare på hva jeg skriver, så HELP! Jeg vet at XML er tingen, men hvordan jeg skal få dette til er jeg ikke sikker på.

 

Jeg har et program som sender XML til servern, der bruker jeg en "packet sniffer/editor" og der kommer koden som <cm cmd="talk" msg="Hey">

Og jeg vil ha et php program som gjør dette.(sender koder)

 

Derfor trår jeg til å få expert hjelp på dette.

Endret av Noxe
Lenke til kommentar
Om du har all data i f.eks. et database kan du lage et script som skriver ut et XML-dokument. Så kan du la scriptet på din andre server hente opp denne filen via f.eks. cURL eller file_get_contents. Om jeg forsto spørsmålet ditt riktig? :)

6111958[/snapback]

Det er veldig viktig at det går på den måten jeg sa her :dontgetit: for et server program mottar infoen på den måten. Men jeg skjønner ikke direkte hvordan jeg skal klare dette over PHP?

Det er nesten som telnet, men da vil den ikke svare på hva jeg skriver, så HELP! Jeg vet at XML er tingen, men hvordan jeg skal få dette til er jeg ikke sikker på.

 

Jeg har et program som sender XML til servern, der bruker jeg en "packet sniffer/editor" og der kommer koden som <cm cmd="talk" msg="Hey">

Og jeg vil ha et php program som gjør dette.(sender koder)

 

Derfor trår jeg til å få expert hjelp på dette.

6113951[/snapback]

 

http://no.php.net/manual/en/ref.sockets.php ?

Lenke til kommentar

Det enkleste er vel å bruke fsockopen() og fwrite().

 

Eksempel:

<?php
$fp = fsockopen('10.0.0.52', 15458);
if ($fp) {
  fwrite($fp,'<cm cmd="talk" msg="Hey" />');
  fclose($fp);
} else {
 print "Could not open socket";
}?>

Skal du motta respons også, så må du hive inn:

//etter fwrite.
while (!feof($fp)) {
   print fgets($fp, 128);
}

Lenke til kommentar
Det enkleste er vel å bruke fsockopen() og fwrite().

 

Eksempel:

<?php
$fp = fsockopen('10.0.0.52', 15458);
if ($fp) {
  fwrite($fp,'<cm cmd="talk" msg="Hey" />');
  fclose($fp);
} else {
 print "Could not open socket";
}?>

Skal du motta respons også, så må du hive inn:

//etter fwrite.
while (!feof($fp)) {
   print fgets($fp, 128);
}

6115313[/snapback]

Ikke for å jage noen med en kjepp, men er det mulig å få den til å sende en annen melding samtidig? det som skjedde om jeg satt inn ny fwrite, så kom den i samme "pakke". noen måte å skille de?

Lenke til kommentar

Må beklage at jeg ikke skjønner helt hva du mener med at du vil skille de, òg sende de samtidig.

Skal du vente på en respons før du skal sende den neste kommandoen?

Skal du sende den neste over en annen socket?

Hvorfor kan du ikke sende de samtidig i samme fwrite?

Lenke til kommentar

Trådstarter gir veldig lite informasjon om hva som egentlig kjører på serversiden, eller hva dette skal brukes til. Siden han tifeligvis ikke har peiling selv, noe som han også inrømmer, så gi nå stakkaren minste motstands vei intil videre... Jeg er enig i at SOAP sannsynligvis vil være beste løsningen, med forbehold om hvordan programmvare på server er bygget opp.

Og hva er forøvrig galt med min bruk av fsocopen? Det er jo egentlig bare en enklere utgave av:

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_connect($socket, $address, $port);
+++

Hvis trådstarter trenger lavnivå tilgang til sine sockets, så kan jeg gå med på at sockets er veien å gå.

 

Curl er vel overkill for bare å sende enkle xml strenger til en server. Jeg ville forstått bruken hvis han skulle sende URL requests (derav navnet client url library).

 

Jeg foreslår at trådstarter utdyper situasjonen litt mer, for å få litt mer enn kvalifisert gjetning til svar...

Endret av stiber
Lenke til kommentar
Må beklage at jeg ikke skjønner helt hva du mener med at du vil skille de, òg sende de samtidig.

Skal du vente på en respons før du skal sende den neste kommandoen?

Skal du sende den neste over en annen socket?

Hvorfor kan du ikke sende de samtidig i samme fwrite?

6121969[/snapback]

Vente på respons ja :) det er tingen!

1 respons

2 sendinger fra PHP program

1 respons

 

Hvorfor spør du?

første er at servern som skal motta gir melding om at den er der, så sender jeg login info, så hva jeg skal legge til\update, så får jeg respons om det ble vellykket.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...