Fonction PHP, GetInfo_Megaupload



  • Salut a tous, j'ai crée une fonction qui permet de donné le nom, description et taille d'un fichier hébergé sur Megaupload, il suffit de donné un lien du type http://www.megaupload.com/?d=XXXXXXXX ou http://megaupload.com/?d=XXXXXXXX . Toutes les erreurs sont géré, pour cela pas de problèmes, tous fonctionnes bien. Mais je me demandé si il ni a pas une autre façon plus optimisé de faire ce genre de choses. J'utilise juste 2 fonction "file_get_contents" et "explode" voici la fonction

    <?php
    function GetInfo_Megaupload($link, $type=''){
    	if(!empty($type)){
    		if(strpos($link, 'megaupload.com/?d=')){
    			$file = file_get_contents($link);
    			if($file){
    				if(strpos($file, 'http://wwwstatic.megaupload.com/gui2/fr/tab_01.jpg') == false){
    					if(strpos($file, 'Unfortunately, the link you have clicked is not available') == false){
    						if($type == 'filename'){
    							$ex1 = explode('Filename:</font> <font style="font-family:arial; color:#FF6700; font-size:15px; font-weight:bold;">', $file);
    							$file_name = explode('</font>', $ex1[1]);
    							return $file_name[0];
    						}
    						else if($type == 'filedescription'){
    							$ex2 = explode('File description:</font> <font style="font-family:arial; color:#000000; font-size:13px;">', $file);
    							$file_description = explode('</font>', $ex2[1]);
    							return $file_description[0];
    						}
    						else if($type == 'filesize'){
    							$ex3 = explode('File size:</font> <font style="font-family:arial; color:#000000; font-size:13px;">', $file);
    							$file_size = explode('</font>', $ex3[1]);
    							return $file_size[0];
    						}
    						else{
    							return 'Le type d'information demandé n'existe pas !';
    						}
    					}
    					else{
    						return 'Le lien megaupload n'est plus valide !';
    					}
    				}
    				else{
    					return 'Ce lien est erroné ! Entrer un lien de ce type : http://www.megaupload.com/?d=XXXXXXXX';
    				}
    			}
    			else{
    				return 'Megaupload met trop de temps a répondre !';
    			}
    		}
    		else{
    			return 'Ce lien est erroné ! Entrer un lien de ce type : http://www.megaupload.com/?d=XXXXXXXX';
    		}
    	}
    	else{
    		return 'Vous n'avez pas entrée le type de l'information a trouvé sur Megaupload. Voici les types disponibles :<br />'.
    		'- "filename" : Ce type vous donnera le nom du fichier<br />'.
    		'- "filedescription" : Ce type vous donnera la description du fichier<br />'.
    		'- "filesize" : Ce type vous donnera la taille du fichier';
    	}
    }
    ?>
    

    En faite ma demande est de savoir si il ni a pas une façon plus optimisé pour faire ceci

    							$ex1 = explode('Filename:</font> <font style="font-family:arial; color:#FF6700; font-size:15px; font-weight:bold;">', $file);
    							$file_name = explode('</font>', $ex1[1]);
    							return $file_name[0];
    

    Merci d'avance



  • Oui, normalement tu peux faire sa en une seul ligne en utilisant des expressions régulières.

    Je sais plus trop comment sa marche mais en gros tu dois créer un masque qui te renverra le contenu de la balise.



  • Ah ok, c'est ce que je voulait savoir, merci



  • $filenamePattern = '#Filename:</font> <font style="font-family:arial; color:#FF6700; font-size:15px; font-weight:bold;">([^<]+)</font>#si';
    preg_match($filenamePattern, $file, $match);
    $fileName = $match[1];
    
    

    Voilà par exemple. [^<] récupère tous les char différent de < (espaces compris)



  • Merci sauf qu'il est possible que dans le nom du fichier il y est un < ^^ mais l'idée est pas mal, merci, je garde ma fonction comme sa :p elle marche bien et suivant l'heure elle s'exécute vite. Merci a tous pour votre aide :)



  • Je suppose que tout cela est pour un débrideur de liens :o :o



  • @Game-War:

    Merci sauf qu'il est possible que dans le nom du fichier il y est un < ^^ mais l'idée est pas mal, merci, je garde ma fonction comme sa :p elle marche bien et suivant l'heure elle s'exécute vite. Merci a tous pour votre aide :)

    tu peux toujours remplacer le [^<] par .*? ;)



  • @titin:

    Je suppose que tout cela est pour un débrideur de liens :o :o

    Un petit tour sur mon site –------------->

    (Mini-News) futur service : upload + gestionnaire de fichiers
    Cette fonction servira a crée un "Gestionnaire de fichiers" en utilisant mon compte prémium Megaupload, non vous n'aurez pas mes identifiants :p mais avec la FileBox de megaupload pour que vous puissiez upload des fichiers sur mon compte et la suppression, modification de titre ...etc du fichier se fera a la main par moi-même. Seul les fichiers uploadé avec la FileBox pourront être supprimé, modifier...etc mais vous pouvez néanmoins mettre des liens Megaupload qui n'ont pas été uploadé via la FileBox, cela vous fera un "listing" de vos liens megaupload.



  • @Game-War:

    Un petit tour sur mon site –------------->

    Hum j'ai pas le lien de ton site xD :D :D



  • Une petite recherche sur le forum :p --------> http://www.natsu-nakatomi.net



  • A ouais c'est vrai ^^ jolie site en tout cas :D :D :D


Log in to reply