Valid XHTML     Valid CSS2    

Listing du fichier reponseUniprot.php

 

00001     <?php
00002     ######################################
00003     
00004     include(
"../std.php") ;
00005     
00006     ###################################################
00007     
00008     function 
chaineUrl_1($url,$avant,$apres) {
00009     
00010     ###################################################
00011     
00012     # on parcourt $url et on récupère le texte entre
00013     # les chaines $avant et $apres
00014     
00015     $lem   
"" ;
00016     $fh    
= @fopen($url,"r") ;
00017     $continue    
;
00018     // cela permet d'arreter la lecture du fichier dès le premier IPR vu
00019     if (!
$fh) {
00020       echo "impossible d'ouvrir l'URL 
$url\n" ;
00021       return($lem
) ;
00022     } ; # finsi
00023     
00024     while ((!
feof($fh)) and ($continue==1)) {
00025       $lig 
fgets($fh4096) ;
00026       $idp 
strpos($lig,$avant) ;
00027       if ($idp
>-1) {
00028          $lig  
substr($lig,$idp+strlen($avant)) ;
00029          $jdp  
strpos($lig,$apres) ;
00030          $lem  
substr($lig,0,$jdp) ;
00031          $continue 
;
00032       } ; # finsi
00033     } ; 
# fin de tant que
00034     fclose
($fh) ;
00035     
00036     return($lem
) ;
00037     
00038     } ; # fin de fonction chaineUrl_1
00039     
00040     ###################################################
00041     
00042     function 
exprUrl1($url,$er) {
00043     
00044     ###################################################
00045     
00046     # on parcourt $url et on récupère le texte entre
00047     # fourni par l'expression régulière $er
00048     
00049     $lem   
"" ;
00050     $fh    
= @fopen($url,"r") ;
00051     $continue    
;
00052     if (!$fh
) {
00053       return($lem
) ;
00054     } ; # finsi
00055     
00056     while ((!
feof($fh)) and ($continue==1)) {
00057       $lig 
fgets($fh4096) ;
00058       $idp 
preg_match($er,$lig,$tdr) ;
00059       if (count
($tdr)>0) {
00060          $lem  
$tdr[1] ;
00061          $continue 
;
00062       } ; # finsi
00063     } ; 
# fin de tant que
00064     fclose
($fh) ;
00065     
00066     return($lem
) ;
00067     
00068     } ; # fin de fonction exprUrl1
00069     
00070     ###################################################
00071     
00072     function 
xslUrl1($urlxml,$fxsl) {
00073     
00074     ###################################################
00075     
00076     # on exécute la transformation du fichier $fxsl
00077     # sur le fichier xml issu de l'URL $urlxml
00078     
00079     $ipr 
"" ;
00080     
00081     $fh    
= @fopen($urlxml,"r") ;
00082     $continue    
;
00083     if (!$fh
) {
00084       return($ipr
) ;
00085     } ; # finsi
00086     
00087     // Chargement du fichier XML
00088     
00089     $xml 
= new domDocument();
00090     $xml 
-> load($urlxml);
00091     
00092     // Chargement du fichier XSL
00093     
00094     $xsl 
= new domDocument();
00095     $xsl 
-> load($fxsl);
00096     
00097     // Nouvelle instance du processeur XSLT
00098     
00099     $xslt 
= new XSLTProcessor();
00100     
00101     // Import de la feuille XSL
00102     
00103     $xslt 
-> importStylesheet($xsl);
00104     
00105     // Transformation et affichage du résultat
00106     
00107     $ipr 
$xslt -> transformToXml($xml);
00108     
00109     return($ipr
) ;
00110     
00111     } ; # fin de fonction xslUrl
00112     
00113     ###################################################
00114     ###################################################
00115     
00116     function 
chaineUrl_2($url,$avant1,$apres1,$avant2="?",$apres2="!") {
00117     
00118     ###################################################
00119     
00120     $lem   
"" ;
00121     $fh    
= @fopen($url,"r") ;
00122     if (!$fh
) {
00123       return($lem
) ;
00124     } ; # finsi
00125     while (!
feof($fh)) {
00126       $lem1 
"?" ;
00127       $lem2 
"??" ;
00128       $lig 
fgets($fh4096) ;
00129       $idp 
strpos($lig,$avant1) ;
00130       while ($idp
>-1) {
00131          $lig   
substr($lig,$idp+strlen($avant1)) ;
00132          $jdp   
strpos($lig,$apres1) ;
00133          $lem1  
" ".substr($lig,0,$jdp) ;
00134          $kdp   
strpos($lig,$avant2) ;
00135          if ($kdp
>-1) {
00136             $lig   
substr($lig,$kdp+strlen($avant2)) ;
00137             $ldp   
strpos($lig,$apres2) ;
00138             $lem2  
substr($lig,0,$ldp) ;
00139          } ; # fin de si
00140          $lem   
.= "$lem1 $lem2 ; " ;
00141          $idp   
strpos($lig,$avant1) ;
00142       } ; # finsi
00143     } ; 
# fin de tant que
00144     fclose
($fh) ;
00145     
00146     return($lem
) ;
00147     
00148     } ; # fin de fonction chaineUrl_2
00149     
00150     ###################################################
00151     
00152     function 
exprUrl2($url,$er) {
00153     
00154     ###################################################
00155     
00156     $lem   
"" ;
00157     $fh    
= @fopen($url,"r") ;
00158     if (!$fh
) {
00159       return($lem
) ;
00160     } ; # finsi
00161     
00162     $jdp 
;
00163     while (!feof
($fh)) {
00164       $lig 
fgets($fh4096) ;
00165       $idp 
preg_match_all($er,$lig,$tdr) ;
00166       if ($idp
>0) {
00167           for ($idv
=0;$idv<$idp;$idv++) {
00168             $lem1  
$tdr[1][$idv] ;
00169             $lem2  
$tdr[2][$idv] ;
00170             $lem  
.= "$lem1 $lem2 ; " ;
00171           } ; # fin pour
00172       } ; 
# finsi
00173     } ; 
# fin de tant que
00174     fclose
($fh) ;
00175     
00176     return($lem
) ;
00177     
00178     } ; # fin de fonction exprUrl2
00179     
00180     ###################################################
00181     
00182     function 
xslUrl2($urlxml,$fxsl) {
00183     
00184     ###################################################
00185     
00186     $ipr 
"" ;
00187     
00188     $fh    
= @fopen($urlxml,"r") ;
00189     $continue    
;
00190     if (!$fh
) {
00191       return($ipr
) ;
00192     } ; # finsi
00193     
00194     $xml 
= new domDocument();
00195     $xml 
-> load($urlxml);
00196     
00197     $xsl 
= new domDocument();
00198     $xsl 
-> load($fxsl);
00199     
00200     $xslt 
= new XSLTProcessor();
00201     $xslt 
-> importStylesheet($xsl);
00202     
00203     $ipr 
$xslt -> transformToXml($xml);
00204     
00205     return($ipr
) ;
00206     
00207     } ; # fin de fonction xslUrl2
00208     
00209     ###################################################
00210     
00211     function 
choixIpr($ldsol) {
00212     
00213     ###################################################
00214     
00215     $ldsol 
trim($ldsol) ;
00216     $lng1  
strlen($ldsol) -;
00217     if (substr
($ldsol,$lng1,1)==";") { $ldsol substr($ldsol,0,$lng1) ; } ;
00218     
00219     # on décompose via le point-virgule
00220     # s'il n'ya qu'une seule solution, c'est le bon ipr
00221     # sinon, si on trouve LEA, c'est ce qu'il faut garder
00222     # sinon, enfin, on garde le premier IPR
00223     
00224     $tdsol 
preg_split("/;/",$ldsol) ;
00225     $lasol 
$tdsol[0] ;
00226     $nbe 
count($tdsol) ;
00227     if ($nbe
>1) {
00228       for ($ids
=0;$ids<$nbe;$ids++) {
00229         $solc 
$tdsol[$ids] ;
00230         if (strpos
($solc,"LEA")>-1) { $lasol $solc ; } ;
00231       } ; # fin pour
00232     } ; 
# fin si
00233     
00234     $motsol 
preg_split("/\s+/",trim($lasol)) ;
00235     $ipr    
$motsol[0] ;
00236     
00237     return( $ipr
) ;
00238     
00239     } ; # fin de fonction choixIpr
00240     
00241     ###################################################
00242     
00243     debutPage
("Correspondance uniprot/interpro") ;
00244     debutSection
("95%") ;
00245     
00246     ######################################
00247     
00248     $titre 
"Aucun identifiant de protéine fourni." ;
00249     if (isset($_GET
["uni_id"])) {
00250      $uni_id 
trim($_GET["uni_id"]) ;
00251      if (strlen
($uni_id)>0) {
00252         $titre 
"Recherche du numéro Uniprot pour la protéine $uni_id;
00253      } ; # fin de si
00254     } ; 
# fin de si
00255     
00256     $url_html 
"http://www.uniprot.org/uniprot/$uni_id;
00257     $url_xml  
"http://www.uniprot.org/uniprot/".$uni_id.".xml" ;
00258     $fhtml    
href($url_html,$uni_id) ;
00259     $fxml     
href($url_xml,$uni_id.".xml") ;
00260     
00261     h2
($titre) ;
00262     blockquote
() ;
00263     
00264     #############################################
00265     #############################################
00266     
00267     h2
("Méthodes pour obtenir le premier numéro IPR","gbleuf") ;
00268     blockquote
() ;
00269     
00270     ## ------------------------------------------------
00271     
00272     h3
("Méthode 1 : fonctions strpos, substr et strlen sur le fichier HTML $fhtml") ;
00273     
00274     $intpro 
chaineUrl_1($url_html,"ac=IPR","\"") ;
00275     p
() ;
00276     echo "La réponse est : 
$intpro " ;
00277     finp
() ;
00278     
00279     ## ------------------------------------------------
00280     
00281     h3
("Méthode 2 : expression régulière sur fichier HTML $fhtml") ;
00282     
00283     $intpro 
exprUrl1($url_html,"/ac=IPR(.*?)\"/") ;
00284     p
() ;
00285     echo "La réponse est : 
$intpro " ;
00286     finp
() ;
00287     
00288     ## ------------------------------------------------
00289     
00290     h3
("Méthode 3 : transformation XSL sur fichier XML $fxml") ;
00291     
00292     ## ------------------------------------------------
00293     
00294     $intpro 
xslUrl1($url_xml,"uniprot1.xsl") ;
00295     p
() ;
00296     echo "La réponse est : 
$intpro " ;
00297     finp
() ;
00298     
00299     finblockquote
() ;
00300     
00301     #############################################
00302     #############################################
00303     
00304     h2
("Méthodes pour obtenir le \"bon IPR\" :","gbleuf") ;
00305     h2
(" IPRunique, celui pour LEA, le premier vu","gbleuf") ;
00306     blockquote
() ;
00307     
00308     ## ------------------------------------------------
00309     
00310     h3
("Méthode 1 : fonctions strpos, substr et strlen sur le fichier HTML $fhtml") ;
00311     
00312     $intpro 
chaineUrl_2($url_html,"ac=IPR","\"","a>.","<br") ;
00313     p
() ;
00314     echo "Réponse(s) : 
$intpro " ;
00315     finp
() ;
00316     
00317     ## ------------------------------------------------
00318     
00319     h3
("Méthode 2 : expression régulière sur fichier HTML $fhtml") ;
00320     
00321     $intpro 
exprUrl2($url_html,"/ac=IPR(.*?)\".*?a>.(.*?)<br/") ;
00322     p
() ;
00323     echo "Réponse(s) : 
$intpro " ;
00324     finp
() ;
00325     
00326     ## ------------------------------------------------
00327     
00328     h3
("Méthode 3 : transformation XSL sur fichier XML $fxml") ;
00329     
00330     ## ------------------------------------------------
00331     
00332     $intpro 
xslUrl2($url_xml,"uniprot2.xsl") ;
00333     p
() ;
00334     echo "Réponse(s) : 
$intpro " ;
00335     finp
() ;
00336     
00337     ## ------------------------------------------------
00338     
00339     $bonipr 
choixIpr($intpro) ;
00340     h3
("On en déduit le bon numéro IPR : $bonipr") ;
00341     
00342     finblockquote
() ;
00343     
00344     #############################################
00345     #############################################
00346     
00347     p
() ;
00348     echo " Code-sources : "
;
00349     echo href
("montresource.php?nomfic=reponseUniprot.php","de la page ","orange_stim nou") ;
00350     echo " ; " 
;
00351     echo href
("montresource.php?nomfic=uniprot1.xsl","de la transformation XSL 1","orange_stim nou") ;
00352     echo " ; " 
;
00353     echo href
("montresource.php?nomfic=uniprot2.xsl","de la transformation XSL 2","orange_stim nou") ;
00354     echo "." 
;
00355     
00356     finp
() ;
00357     
00358     
00359     
00360     finblockquote
() ;
00361     
00362     ######################################
00363     finSection
() ;
00364     finPage
() ;
00365     ######################################
00366     ?>

La coloration syntaxique est réalisée par un enrobage de la function php nommée highlight_file

mais si vous préférez, vous pouvez utiliser celle de SyntaxHighlighter ou même celle de geshi.

Pour ne pas voir les numéros de ligne, ajoutez &nl=non à la suite du nom du fichier.

 

 

retour gH    Retour à la page principale de   (gH)