O ile nie masz na serwerze PHP odpalonego jako jakiegoś rodzaju daemona, który nasłuchuje na danym porcie nie możesz mu wysłać danych - bo nie ma tam niczego co mogło by je odebrać.
PHP z reguły działa "przez serwer HTTP", czyli to serwer HTTP (np. Apache) nasłuchuje na porcie 80 i jeżeli otrzyma odpowiednie żądanie przekaże je PHP-owi, który je obrobi i zwróci odpowiedź. Zakładając, że masz najbardziej standardową konfigurację serwera HTTP wystarczyłoby Ci coś takiego:
Po stronie serwera:
1. Skrypt PHP umieszczony w {WEB-ROOT}/mojskrypt.php (gdzie {WEB-ROOT} to jakaś tam ścieżka pod którą serwer HTTP trzyma publiczne pliki tak by były one dostępne przez domena.pl/mojskrypt.php)
2. Skrypt PHP, który ma formę przykładowo:
<?php
if (!isset($_POST['xml'])) { die('Niepoprawne żądanie.'); }
$xml = simplexml_load_string($_POST['xml']);
if ($xml === false) {
die('Nieprawidłowa struktura XML-a'); }
// $xml to obiekt reprezentujący dokument XML, więcej na: <a href="http://pl.php.net/manual/en/book.simplexml.php" target="_blank">http://pl.php.net/manual/en/book.simplexml.php</a>
// przetwarzasz dane
// zwracasz odpowiedź
Po stronie klienta:
1. Musisz jedynie wysłać odpowiednie żądanie HTTP, które przyjmie formę:
Kod
POST /mojskrypt.php HTTP/1.1
Host: domena.pl
xml={{ treść dokumentu XML }}