- <?php
- function online_file_exist ($sUrl, $iPort = 80) {
- if (!is_string ($sUrl)) { // Si le premier paramètre n'est pas un String
- die ('Invalide paramètre. Le premier paramètre doit être un String');
- // ou throw new exception ('...'); au choix
- }
- else if (!is_int ($iPort)) { // Si le second paramètre n'est pas un entier
- die ('Invalide paramètre. Le second paramètre doit être un entier');
- // ou throw new exception ('...'); au choix
- }
- else { // Sinon
- // On récupere la valeur du serveur
- preg_match ('#\/\/(.*)\/(.*)#', $sUrl, $sUrlInfo);
-
- // Le Serveur
- $sServerName = $sUrlInfo[1];
-
- // Le fichier demandé
- $sFilePath = $sUrlInfo[2];
-
- // On ouvre le socket
- if (($rSock = @fsockopen($sServerName, $iPort)) === false) {
- die ('Impossible d\'ouvrir '.$sServerName.'. Le server n\'est pas accessible');
- // ou throw new exception ('...'); au choix
- }
-
- // On envoie la requete de demande de fichier
- $sRequest = 'GET /'.$sFilePath.' HTTP/1.1'."\r\n";
- $sRequest .= 'Host: '.$sServerName."\r\n";
- $sRequest .= 'Connection: Close'."\r\n\r\n";
-
- if (!@fwrite ($rSock, $sRequest)) {
- die ('Impossible d\'envoyer la requête !');
- // ou throw new exception ('...'); au choix
- }
-
- // On récupere la réponse
- $sHttpResponse = @fgets($rSock, 128);
- // et on ferme la resource
- @fclose($rSock);
-
- // Si la réponse est bonne (200), alors on retourne true, sinon false;
- if (strpos ($sHttpResponse, '200') !== false)
- return true;
- else
- return false;
- }
- }
- ?>
<?php
function online_file_exist ($sUrl, $iPort = 80) {
if (!is_string ($sUrl)) { // Si le premier paramètre n'est pas un String
die ('Invalide paramètre. Le premier paramètre doit être un String');
// ou throw new exception ('...'); au choix
}
else if (!is_int ($iPort)) { // Si le second paramètre n'est pas un entier
die ('Invalide paramètre. Le second paramètre doit être un entier');
// ou throw new exception ('...'); au choix
}
else { // Sinon
// On récupere la valeur du serveur
preg_match ('#\/\/(.*)\/(.*)#', $sUrl, $sUrlInfo);
// Le Serveur
$sServerName = $sUrlInfo[1];
// Le fichier demandé
$sFilePath = $sUrlInfo[2];
// On ouvre le socket
if (($rSock = @fsockopen($sServerName, $iPort)) === false) {
die ('Impossible d\'ouvrir '.$sServerName.'. Le server n\'est pas accessible');
// ou throw new exception ('...'); au choix
}
// On envoie la requete de demande de fichier
$sRequest = 'GET /'.$sFilePath.' HTTP/1.1'."\r\n";
$sRequest .= 'Host: '.$sServerName."\r\n";
$sRequest .= 'Connection: Close'."\r\n\r\n";
if (!@fwrite ($rSock, $sRequest)) {
die ('Impossible d\'envoyer la requête !');
// ou throw new exception ('...'); au choix
}
// On récupere la réponse
$sHttpResponse = @fgets($rSock, 128);
// et on ferme la resource
@fclose($rSock);
// Si la réponse est bonne (200), alors on retourne true, sinon false;
if (strpos ($sHttpResponse, '200') !== false)
return true;
else
return false;
}
}
?>