Listing du fichier reponseUniprot.php avec syntaxhighlighter
<?php ###################################### include("../std.php") ; ################################################### function chaineUrl_1($url,$avant,$apres) { ################################################### # on parcourt $url et on récupère le texte entre # les chaines $avant et $apres $lem = "" ; $fh = @fopen($url,"r") ; $continue = 1 ; // cela permet d'arreter la lecture du fichier dès le premier IPR vu if (!$fh) { echo "impossible d'ouvrir l'URL $url\n" ; return($lem) ; } ; # finsi while ((!feof($fh)) and ($continue==1)) { $lig = fgets($fh, 4096) ; $idp = strpos($lig,$avant) ; if ($idp>-1) { $lig = substr($lig,$idp+strlen($avant)) ; $jdp = strpos($lig,$apres) ; $lem = substr($lig,0,$jdp) ; $continue = 0 ; } ; # finsi } ; # fin de tant que fclose($fh) ; return($lem) ; } ; # fin de fonction chaineUrl_1 ################################################### function exprUrl1($url,$er) { ################################################### # on parcourt $url et on récupère le texte entre # fourni par l'expression régulière $er $lem = "" ; $fh = @fopen($url,"r") ; $continue = 1 ; if (!$fh) { return($lem) ; } ; # finsi while ((!feof($fh)) and ($continue==1)) { $lig = fgets($fh, 4096) ; $idp = preg_match($er,$lig,$tdr) ; if (count($tdr)>0) { $lem = $tdr[1] ; $continue = 0 ; } ; # finsi } ; # fin de tant que fclose($fh) ; return($lem) ; } ; # fin de fonction exprUrl1 ################################################### function xslUrl1($urlxml,$fxsl) { ################################################### # on exécute la transformation du fichier $fxsl # sur le fichier xml issu de l'URL $urlxml $ipr = "" ; $fh = @fopen($urlxml,"r") ; $continue = 1 ; if (!$fh) { return($ipr) ; } ; # finsi // Chargement du fichier XML $xml = new domDocument(); $xml -> load($urlxml); // Chargement du fichier XSL $xsl = new domDocument(); $xsl -> load($fxsl); // Nouvelle instance du processeur XSLT $xslt = new XSLTProcessor(); // Import de la feuille XSL $xslt -> importStylesheet($xsl); // Transformation et affichage du résultat $ipr = $xslt -> transformToXml($xml); return($ipr) ; } ; # fin de fonction xslUrl ################################################### ################################################### function chaineUrl_2($url,$avant1,$apres1,$avant2="?",$apres2="!") { ################################################### $lem = "" ; $fh = @fopen($url,"r") ; if (!$fh) { return($lem) ; } ; # finsi while (!feof($fh)) { $lem1 = "?" ; $lem2 = "??" ; $lig = fgets($fh, 4096) ; $idp = strpos($lig,$avant1) ; while ($idp>-1) { $lig = substr($lig,$idp+strlen($avant1)) ; $jdp = strpos($lig,$apres1) ; $lem1 = " ".substr($lig,0,$jdp) ; $kdp = strpos($lig,$avant2) ; if ($kdp>-1) { $lig = substr($lig,$kdp+strlen($avant2)) ; $ldp = strpos($lig,$apres2) ; $lem2 = substr($lig,0,$ldp) ; } ; # fin de si $lem .= "$lem1 $lem2 ; " ; $idp = strpos($lig,$avant1) ; } ; # finsi } ; # fin de tant que fclose($fh) ; return($lem) ; } ; # fin de fonction chaineUrl_2 ################################################### function exprUrl2($url,$er) { ################################################### $lem = "" ; $fh = @fopen($url,"r") ; if (!$fh) { return($lem) ; } ; # finsi $jdp = 0 ; while (!feof($fh)) { $lig = fgets($fh, 4096) ; $idp = preg_match_all($er,$lig,$tdr) ; if ($idp>0) { for ($idv=0;$idv<$idp;$idv++) { $lem1 = $tdr[1][$idv] ; $lem2 = $tdr[2][$idv] ; $lem .= "$lem1 $lem2 ; " ; } ; # fin pour } ; # finsi } ; # fin de tant que fclose($fh) ; return($lem) ; } ; # fin de fonction exprUrl2 ################################################### function xslUrl2($urlxml,$fxsl) { ################################################### $ipr = "" ; $fh = @fopen($urlxml,"r") ; $continue = 1 ; if (!$fh) { return($ipr) ; } ; # finsi $xml = new domDocument(); $xml -> load($urlxml); $xsl = new domDocument(); $xsl -> load($fxsl); $xslt = new XSLTProcessor(); $xslt -> importStylesheet($xsl); $ipr = $xslt -> transformToXml($xml); return($ipr) ; } ; # fin de fonction xslUrl2 ################################################### function choixIpr($ldsol) { ################################################### $ldsol = trim($ldsol) ; $lng1 = strlen($ldsol) -1 ; if (substr($ldsol,$lng1,1)==";") { $ldsol = substr($ldsol,0,$lng1) ; } ; # on décompose via le point-virgule # s'il n'ya qu'une seule solution, c'est le bon ipr # sinon, si on trouve LEA, c'est ce qu'il faut garder # sinon, enfin, on garde le premier IPR $tdsol = preg_split("/;/",$ldsol) ; $lasol = $tdsol[0] ; $nbe = count($tdsol) ; if ($nbe>1) { for ($ids=0;$ids<$nbe;$ids++) { $solc = $tdsol[$ids] ; if (strpos($solc,"LEA")>-1) { $lasol = $solc ; } ; } ; # fin pour } ; # fin si $motsol = preg_split("/\s+/",trim($lasol)) ; $ipr = $motsol[0] ; return( $ipr) ; } ; # fin de fonction choixIpr ################################################### debutPage("Correspondance uniprot/interpro") ; debutSection("95%") ; ###################################### $titre = "Aucun identifiant de protéine fourni." ; if (isset($_GET["uni_id"])) { $uni_id = trim($_GET["uni_id"]) ; if (strlen($uni_id)>0) { $titre = "Recherche du numéro Uniprot pour la protéine $uni_id" ; } ; # fin de si } ; # fin de si $url_html = "http://www.uniprot.org/uniprot/$uni_id" ; $url_xml = "http://www.uniprot.org/uniprot/".$uni_id.".xml" ; $fhtml = href($url_html,$uni_id) ; $fxml = href($url_xml,$uni_id.".xml") ; h2($titre) ; blockquote() ; ############################################# ############################################# h2("Méthodes pour obtenir le premier numéro IPR","gbleuf") ; blockquote() ; ## ------------------------------------------------ h3("Méthode 1 : fonctions strpos, substr et strlen sur le fichier HTML $fhtml") ; $intpro = chaineUrl_1($url_html,"ac=IPR","\"") ; p() ; echo "La réponse est : $intpro " ; finp() ; ## ------------------------------------------------ h3("Méthode 2 : expression régulière sur fichier HTML $fhtml") ; $intpro = exprUrl1($url_html,"/ac=IPR(.*?)\"/") ; p() ; echo "La réponse est : $intpro " ; finp() ; ## ------------------------------------------------ h3("Méthode 3 : transformation XSL sur fichier XML $fxml") ; ## ------------------------------------------------ $intpro = xslUrl1($url_xml,"uniprot1.xsl") ; p() ; echo "La réponse est : $intpro " ; finp() ; finblockquote() ; ############################################# ############################################# h2("Méthodes pour obtenir le \"bon IPR\" :","gbleuf") ; h2(" IPRunique, celui pour LEA, le premier vu","gbleuf") ; blockquote() ; ## ------------------------------------------------ h3("Méthode 1 : fonctions strpos, substr et strlen sur le fichier HTML $fhtml") ; $intpro = chaineUrl_2($url_html,"ac=IPR","\"","a>.","<br") ; p() ; echo "Réponse(s) : $intpro " ; finp() ; ## ------------------------------------------------ h3("Méthode 2 : expression régulière sur fichier HTML $fhtml") ; $intpro = exprUrl2($url_html,"/ac=IPR(.*?)\".*?a>.(.*?)<br/") ; p() ; echo "Réponse(s) : $intpro " ; finp() ; ## ------------------------------------------------ h3("Méthode 3 : transformation XSL sur fichier XML $fxml") ; ## ------------------------------------------------ $intpro = xslUrl2($url_xml,"uniprot2.xsl") ; p() ; echo "Réponse(s) : $intpro " ; finp() ; ## ------------------------------------------------ $bonipr = choixIpr($intpro) ; h3("On en déduit le bon numéro IPR : $bonipr") ; finblockquote() ; ############################################# ############################################# p() ; echo " Code-sources : "; echo href("montresource.php?nomfic=reponseUniprot.php","de la page ","orange_stim nou") ; echo " ; " ; echo href("montresource.php?nomfic=uniprot1.xsl","de la transformation XSL 1","orange_stim nou") ; echo " ; " ; echo href("montresource.php?nomfic=uniprot2.xsl","de la transformation XSL 2","orange_stim nou") ; echo "." ; finp() ; finblockquote() ; ###################################### finSection() ; finPage() ; ###################################### ?>La coloration syntaxique est réalisée par : SyntaxHighlighter.
Si vous préférez, vous pouvez utiliser celle de geshi ou même celle construite autour de la fonction highlight_file.
Retour à la page principale de (gH)