help sur une fonction

help sur une fonction - PHP - Programmation

Marsh Posté le 06-10-2006 à 17:37:18    

bonjour
 
Voici une question de manipulation de données.  
 
Le but est de manipuler un titre que je récupère dans un array, j enleve les espaces,les accents et j' accole au titre l extension pdf. Donc:
 
La donnée que je récupère est .$i["name"].
 
je veux la manipuler a l' aide d' une fonction qui se présente comme suit:
function code_pdf($string)
 
J' ai la ligne qui récupère le nom et y accole l extension pdf
 
echo  '&nbsp;&nbsp; <a onclick="window.open(this.href,\'_blank\');" href="'.$i["name"].'.pdf." ><img src="images/depliant.gif" border="0" alt="téléchargez la brochure" /></a>';
 
Et euh la comme j suis pas un Dieu du php, j me perds pour toucher au but, est ce que quelqu un pourrait me dire comment  faire en sorte que $i["name"].  passe dans function code_pdf($string) et prenne l extension pdf? dans la ligne ci desus? J ai essayé des trucs mais ca ch...N' hésitez pas a poser des questions si ce n est pas clair :-\
 
Merci


Message édité par Profil supprimé le 06-10-2006 à 17:37:48
Reply

Marsh Posté le 06-10-2006 à 17:37:18   

Reply

Marsh Posté le 06-10-2006 à 17:38:57    

heu, ton "echo" là, il est dans "code_pdf" ou en dehors?

Reply

Marsh Posté le 06-10-2006 à 18:22:15    

en dehors, il affiche $i["name"]  avec l extension pdf au bout, ce que je voudrais c qu avant d afficher il passe par code_pdf qui lui a pour but d enlever les ponctuation :)

Reply

Marsh Posté le 06-10-2006 à 18:30:23    

tu veux dire que tu n'arrives pas à faire un : $i["name"]= code_pdf($i["name"]) ?

Reply

Marsh Posté le 06-10-2006 à 18:39:28    

omega2 a écrit :

tu veux dire que tu n'arrives pas à faire un : $i["name"]= code_pdf($i["name"]) ?


 
en fait je comprends le principe c est pour ecrire l echo convenablement


Message édité par Profil supprimé le 06-10-2006 à 18:49:03
Reply

Marsh Posté le 09-10-2006 à 17:17:30    

:bounce:

Reply

Marsh Posté le 09-10-2006 à 17:31:24    

heu :

Code :
  1. echo  '&nbsp;&nbsp; <a onclick="window.open(this.href,\'_blank\');" href="'.code_pdf($i["name"]).'.pdf." ><img src="images/depliant.gif" border="0" alt="téléchargez la brochure" /></a>';

peut être. ;)
 
PS : Sous réserve du code qu'il y a autour de tout ça. :D

Reply

Marsh Posté le 09-10-2006 à 18:38:02    

j avais essayé comme cela  mais ca bug :-/

Reply

Marsh Posté le 09-10-2006 à 18:38:19    

tu veux voir le code complet?  :whistle:

Reply

Marsh Posté le 09-10-2006 à 18:43:15    

Ca serait utile de l'avoir pour savoir où ca bug. D'ailleur, ca bug comment? ("ca bug", c'est vague comme explication;) )
Mais déjà, t'as essayé de rajouter des echo par endroit pour vérifier que t'as bien partout ce qu'il faut?

Reply

Marsh Posté le 09-10-2006 à 18:43:15   

Reply

Marsh Posté le 09-10-2006 à 18:45:16    

ca bug page blanche

Reply

Marsh Posté le 09-10-2006 à 18:45:50    

Code :
  1. <?php
  2. // Verfier la synthaxe de l'email
  3. function test_mail($email) {
  4. $pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,4}$";
  5. if (eregi ($pattern, $email))
  6. return TRUE;
  7. else
  8. return FALSE;
  9. }
  10. // Affichier les liens
  11. function affichage_liens($liste, $url_r=1, $fil=0) {
  12. global $tab_pr;
  13. while ($i=mysql_fetch_array($liste))
  14.         {
  15.         $tab_pr[$i["url"]] = $i["pr"];
  16.    
  17.         echo "\n".'<table><tr><td style="vertical-align : top; width : 130px;"><img src="http://www.thumbzor.com/tel.php?url='.$i["url"].'">  </td><td style="vertical-align : middle;">';
  18.         echo '<div class="lien"><img src="images/drapal.png" alt="Ce site est québécois" border="0">'."\n".'<a onclick="window.open(this.href,\'_blank\');return false;" href="'.$i["url"].'" title="'.$i["name"].'">'.$i["name"].'</a>';
  19.         if ($i["pr"] != 0)
  20.         echo '&nbsp;&nbsp;<img src="images/pr'.$i["pr"].'.gif"  alt="Page Rank : '.$i["pr"].'" />';
  21.  echo  '&nbsp;&nbsp; <a onclick="window.open(this.href,\'_blank\');" href="'.$i["name"].'.pdf." ><img src="images/depliant.gif" border="0" alt="téléchargez la brochure" /></a>';
  22.         echo "<br />\n";
  23.     echo "<br />\n";
  24.         echo $i["description"].'<br />';
  25.         if ($fil == 0)
  26.             echo "\n<span>".$i["url"]."</span>\n</div>\n\n";
  27.         else {
  28.             echo "\n".'<span>'.$i["url"].'</span><br />';
  29.             $title_chemin = show_me_the_way_clic($i['category'], $url_r);
  30.             echo "\n<div class=\"ariane\">Cat&eacute;gorie :$title_chemin"."</div>\n</div>\n\n";
  31.         }
  32.         echo '</td></tr></table>';
  33.     }
  34. }
  35. // Fonction pour montrer le chemin d'un lien
  36. function show_me_the_way($id) {
  37. $title_chemin = '';
  38. while ($id != 0)
  39. {
  40. $DB = mysql_query("SELECT name, root FROM `category` WHERE id='$id'" );
  41. $result = mysql_fetch_array($DB);
  42. $id = $result["root"];
  43. $title_chemin = ' > '.$result["name"].$title_chemin;
  44. }
  45. return $title_chemin;
  46. }
  47. // Fonction pour montrer le chemin d'un lien (avec les liens lol)
  48. function show_me_the_way_clic($id, $url_r) {
  49. global $titre_page;
  50. $title_chemin = '';
  51. while ($id != 0)
  52. {
  53. $DB = mysql_query("SELECT id, name, root FROM `category` WHERE id='$id'" );
  54. $result = mysql_fetch_array($DB);
  55. $id = $result["root"];
  56. if (!isset($titre_page)) $titre_page = $result["name"];
  57. if ($url_r == 1)
  58.  $title_chemin = ' > <a href="'.code_url($result["name"]).'-'.$result["id"].'.html" title="'.$result["name"].'">'.$result["name"].'</a>'.$title_chemin;
  59. else
  60.  $title_chemin = ' > <a href="index.php?dir='.$result["id"].'" title="'.$result["name"].'">'.$result["name"].'</a>'.$title_chemin;
  61. }
  62. return $title_chemin;
  63. }
  64. // Fonction pour la transformation des noms pour générer les pdf
  65. function code_pdf($string)
  66. {
  67. $string = strtolower($string);
  68. $string = str_replace("( |')", "-", $string);
  69. $accent = array('â','à','é','è','ê','î','ô','û','ç');
  70. $sans_accent = array('a','a','e','e','e','i','o','u','c');
  71. $string = str_replace($accent, $sans_accent, $string);
  72. $string = eregi_replace("[^a-z0-9]","-",$string);
  73. $string = eregi_replace("(^(_)*|(_)*$)","",$string);
  74. $string = eregi_replace("(-){2,3}","",$string);
  75. return $string;
  76. }
  77. // Fonction pour l'URL Rewriting
  78. function code_url($string)
  79. {
  80. $string = strtolower($string);
  81. $nom=ereg_replace(' ','-',$string);
  82. $nom=ereg_replace('\'','-',$string);
  83. $accent = array('â','à','é','è','ê','î','ô','û','ç');
  84. $sans_accent = array('a','a','e','e','e','i','o','u','c');
  85. $string = str_replace($accent, $sans_accent, $string);
  86. $string = eregi_replace("[^a-z0-9]","-",$string);
  87. $string = eregi_replace("(^(_)*|(_)*$)","",$string);
  88. $string = eregi_replace("(-){2,3}","",$string);
  89. return $string;
  90. }
  91. // Teste si l'URL répond
  92. function checkurl($url){
  93. // vérification du protocole HTTP
  94. if (!eregi("^http://", $url)) {
  95.  return FALSE;
  96. }
  97. $details = parse_url($url);
  98. // vérification du port 80 lié au protocole HTTP
  99. if (!isset($details['port'])) {
  100.  $details['port'] = "80";
  101. }
  102. // vérification du chemin
  103. if (!isset($details['path'])) {
  104.  $details['path'] = "/";
  105. }
  106. // vérification de l'adresse du serveur
  107. if (!ereg("[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+", $details['host'])){
  108.  $details['host'] = gethostbyname($details['host']);
  109. }
  110. // ouverture d'une connexion vers le serveur
  111. if ($sock = @fsockopen( $details['host'], $details['port'], $numero_erreur, $texte_erreur)){
  112.  $requete = "GET ".$details['path']." HTTP/1.1\r\n";
  113.  $requete .= "Host: ".$details['host']."\r\n\r\n";
  114.  // envoie d'une requête HTTP GET
  115.  fputs($sock, $requete);
  116.  // réception de la réponse du serveur
  117.  $str = fgets($sock, 1024);
  118.  while(!ereg('^HTTP/1.1 ', $str)){
  119.   $str = fgets($sock, 1024);
  120.  }
  121.  // fermeture de la connexion
  122.  fclose($sock);
  123.  list($http, $str, $texte) = explode(" ", $str, 3);
  124.  return TRUE;
  125. }
  126. return FALSE;
  127. }
  128. // Calcul PR
  129. define('GMAG', 0xE6359A60);
  130. //unsigned shift right
  131. function zeroFill($a, $b)
  132. {
  133.     $z = hexdec(80000000);
  134.         if ($z & $a)
  135.         {
  136.             $a = ($a>>1);
  137.             $a &= (~$z);
  138.             $a |= 0x40000000;
  139.             $a = ($a>>($b-1));
  140.         }
  141.         else
  142.         {
  143.             $a = ($a>>$b);
  144.         }
  145.         return $a;
  146. }
  147. function mix($a,$b,$c) {
  148.   $a -= $b; $a -= $c; $a ^= (zeroFill($c,13));
  149.   $b -= $c; $b -= $a; $b ^= ($a<<8);
  150.   $c -= $a; $c -= $b; $c ^= (zeroFill($b,13));
  151.   $a -= $b; $a -= $c; $a ^= (zeroFill($c,12));
  152.   $b -= $c; $b -= $a; $b ^= ($a<<16);
  153.   $c -= $a; $c -= $b; $c ^= (zeroFill($b,5));
  154.   $a -= $b; $a -= $c; $a ^= (zeroFill($c,3)); 
  155.   $b -= $c; $b -= $a; $b ^= ($a<<10);
  156.   $c -= $a; $c -= $b; $c ^= (zeroFill($b,15));
  157.  
  158.   return array($a,$b,$c);
  159. }
  160. function GCH($adress, $length=null, $init=GMAG) {
  161.     if(is_null($length)) {
  162.         $length = sizeof($adress);
  163.     }
  164.     $a = $b = 0x9E3779B9;
  165.     $c = $init;
  166.     $k = 0;
  167.     $len = $length;
  168.     while($len >= 12) {
  169.         $a += ($adress[$k+0] +($adress[$k+1]<<8) +($adress[$k+2]<<16)
  170. +($adress[$k+3]<<24));
  171.         $b += ($adress[$k+4] +($adress[$k+5]<<8) +($adress[$k+6]<<16)
  172. +($adress[$k+7]<<24));
  173.         $c += ($adress[$k+8] +($adress[$k+9]<<8)
  174. +($adress[$k+10]<<16)+($adress[$k+11]<<24));
  175.         $mix = mix($a,$b,$c);
  176.         $a = $mix[0]; $b = $mix[1]; $c = $mix[2];
  177.         $k += 12;
  178.         $len -= 12;
  179.     }
  180.     $c += $length;
  181.     switch($len)              /* all the case statements fall through */
  182.     {
  183.         case 11: $c+=($adress[$k+10]<<24);
  184.         case 10: $c+=($adress[$k+9]<<16);
  185.         case 9 : $c+=($adress[$k+8]<<8);
  186.           /* the first byte of c is reserved for the length */
  187.         case 8 : $b+=($adress[$k+7]<<24);
  188.         case 7 : $b+=($adress[$k+6]<<16);
  189.         case 6 : $b+=($adress[$k+5]<<8);
  190.         case 5 : $b+=($adress[$k+4]);
  191.         case 4 : $a+=($adress[$k+3]<<24);
  192.         case 3 : $a+=($adress[$k+2]<<16);
  193.         case 2 : $a+=($adress[$k+1]<<8);
  194.         case 1 : $a+=($adress[$k+0]);
  195.          /* case 0: nothing left to add */
  196.     }
  197.     $mix = mix($a,$b,$c);
  198.     /*-------------------------------------------- report the result */
  199.     return $mix[2];
  200. }
  201. //converts a string into an array of integers containing the numeric value of the char
  202. function strord($string) {
  203.     for($i=0;$i<strlen($string);$i++) {
  204.         $result[$i] = ord($string{$i});
  205.     }
  206.     return $result;
  207. }
  208. function getPR($_url) {
  209.     $adress = 'info:'.$_url;
  210.     $ch = GCH(strord($adress));
  211.     $adress='info:'.urlencode($_url);
  212.     $pr =
  213. @file("http://www.google.com/search?client=navclient-auto&ch=6$ch&ie=UTF-8&oe=UTF-8&features=Rank&q=$adress" );
  214.     $pr_str = @implode("", $pr);
  215.     return substr($pr_str,strrpos($pr_str, ":" )+1);
  216. }
  217. // Génère un mot secret pour la confirmation des sites
  218. function random_pass() {
  219. $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
  220. $password = '';
  221. for ($i = 0; $i < 32; ++$i)
  222.  $password .= substr($chars, (mt_rand() % strlen($chars)), 1);
  223. return $password;
  224. }
  225. ?>

Reply

Marsh Posté le 09-10-2006 à 18:47:14    

ligne 24 c la ligne en cause et a la 78 c la fonction
 
La fonction url fonctionne ok, qu eje mette la pdf ou la url j ai une page blanche et la ligne 24 que tu vois la fonctionnes correctement

Reply

Marsh Posté le 09-10-2006 à 18:51:18    

tout est dans des fonction sauf un define qu'est à l'extérieur et dans ce fichier tu ne fais appel à aucune fonction => si ca n'est pas un fichier inclus et utilisé par un autre fichier alors rien n'est exécuté et tout logiquement rien n'est affiché.

Reply

Marsh Posté le 09-10-2006 à 18:52:49    

sauf que la page la elle marche

Reply

Marsh Posté le 09-10-2006 à 18:53:54    

en fait c une page de resultat d annuaire...asti qu chuis mélé :o

Reply

Marsh Posté le 09-10-2006 à 18:57:56    

je viens de regarder , tous les includes sont fait dans la page index.php de l annuaire dont celui ci qui est l include la page ci dessus:
include('sources/fonctions.php');

Reply

Marsh Posté le 11-10-2006 à 02:36:04    

:bounce:

Reply

Marsh Posté le 12-10-2006 à 19:54:44    

Après l'include, tu ajoutes l'echo que t'a donné omega2.
 
Faut bien que tu comprennes qu'une fonction, si y a pas un endroit du code où tu y fais appel, jamais elle se lancera ;)
Donc là tu nous as sorti un beau script tout plein de fonctions, et visiblement tu y fais jamais appel, donc rien ne se passe, page blanche.

Reply

Marsh Posté le 13-10-2006 à 02:05:41    


 
 :whistle:


Message édité par Profil supprimé le 13-10-2006 à 02:05:52
Reply

Marsh Posté le 13-10-2006 à 11:07:02    

je t'ai répondu hein  

Citation :

Après l'include, tu ajoutes l'echo que t'a donné omega2.


peut-être aurais-je du préciser : dans l'index dont tu parles.

Reply

Marsh Posté le 13-10-2006 à 12:13:23    


En profilant avec mon cerveau ce code, je pense qu'on peut l'optimiser afin qu'il soit au moins trois fois plus rapide [:dawak]

Reply

Marsh Posté le 13-10-2006 à 13:15:09    

non attendez on parle pas de la même chose, il sagit d un résultat d' annuaire, la page que vous voyaez est inclue dans une autre a la production de la page de résultat. Donc tout ce qui est syntaxique sur les pages  est bon. Tout ce que je voudrais savoir c est si la ligne d echo vous parait correcte

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed