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
= 1 ;
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($fh, 4096) ;
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
= 0 ;
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
= 1 ;
00052     if (!
$fh) {
00053      return(
$lem) ;
00054     } ;
# finsi
00055     
00056     
while ((!
feof($fh)) and ($continue==1)) {
00057     
$lig
= fgets($fh, 4096) ;
00058     
$idp
= preg_match($er,$lig,$tdr) ;
00059      if (
count
($tdr)>0) {
00060     
$lem
= $tdr[1] ;
00061     
$continue
= 0 ;
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
= 1 ;
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($fh, 4096) ;
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
= 0 ;
00163     while (!
feof
($fh)) {
00164     
$lig
= fgets($fh, 4096) ;
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
= 1 ;
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) -1 ;
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     
?>

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)