Version complète: sur le forum Webmaster Hub : crunch recalcitrant ...
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
bigornot
voilà, je suis en train de créer un code ... :
CODE
<?php
include("conf.php");
function crunch($tx,$lg) {
  $tmp = 0;
  if(strlen($tx)>$lg) $tmp = strpos($tx," ",$lg);
  if($tmp) $tx2 = substr($tx,0,$tmp);
  else $tx2 = substr($tx,0,$lg);
  if($tx2!=$tx) $tx2.=" ...";
  return $tx2;
}
$i = 0;
mysql_connect($sql_ch,$sql_no,$sql_pa) or die ("ugyyu");
mysql_select_db($sql_db) or die ("ikgogyu");
$q = mysql_query("select * from articles LIMIT 0,1") or die ("ihlhbfrliuh");
while($row = mysql_fetch_array($q)){
$st2 = strlen($row['tx']);
$s = crunch($row['tx'],$row['lg1']);
echo $s;
}
?>

il sert à ne prendre que les premiers caractères d'une chaine ...
mais le probleme, c'est que le script ne retourne rien ...
mais, en le modifiant un peu :
CODE
<?php
include("conf.php");
function crunch($tx,$lg) {
  $tmp = 0;
  if(strlen($tx)>$lg) $tmp = strpos($tx," ",$lg);
  if($tmp) $tx2 = substr($tx,0,$tmp);
  else $tx2 = substr($tx,0,$lg);
  if($tx2!=$tx) $tx2.=" ...";
  return $tx2;
}
$i = 0;
mysql_connect($sql_ch,$sql_no,$sql_pa) or die ("ugyyu");
mysql_select_db($sql_db) or die ("ikgogyu");
$q = mysql_query("select * from articles LIMIT 0,1") or die ("ihlhbfrliuh");
while($row = mysql_fetch_array($q)){
$st2 = strlen($row['tx']);
crunch($row['tx'],$row['lg1']);
echo "crunch($row['tx'],$row['lg1'])";
}
?>

j'obtiens ça :

CITATION
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /var/www/free.fr/0/0/bdbourgeron/repertoire/scripratik.php on line 18


que se passe t il ?
pourquoi ce message ?

merci !
Dan
Salut,

Remplaces ta dernière ligne par:
CODE
echo "crunch(" . $row['tx'] . "," . $row['lg1'] . ")";


wink.gif Dan
bigornot
non, c'est pas ça : il m'écrit

CITATION
crunch(blabla,2)


blabla étant le tx de la base, et 2 etant la longueur...
Anonymus
Retourner les premiers caractères d'une chaine ?

la fonction substr sert justement à ca wink.gif

Utilisation :

CODE
$rest = substr("abcdef", 1);    // retourne "bcdef"
$rest = substr("abcdef", 1, 3); // retourne "bcd"
$rest = substr("abcdef", 0, 4); // retourne "abcd"
$rest = substr("abcdef", 0, 8); // retourne "abcdef"

Dixit le Manuel biggrin.gif

Tu peux aussi essayer à l'envers
CODE
$rest = substr("abcdef", 0, -1);  // retourne "abcde"
$rest = substr("abcdef", 2, -1);  // retourne "cde"
$rest = substr("abcdef", 4, -4);  // retourne ""
$rest = substr("abcdef", -3, -1); // retourne "de"



A.
bigornot
oui, mais l'avantage de crunch, c'est que ça ne coupe pas les mots (si possible ...).
je crois ...
Anonymus
Si tu mets :

echo "crunch(" . $row['tx'] . "," . $row['lg1'] . ")";

Tu lui demandes d'afficher :
le mot 'crunch', suivi de la chaine 'tx', une virgule, et la longueur.

Si tu veux afficher le résultat de la fonction, alors c'est :
CODE
echo"<br>".crunch($row['tx'],$row['lg1']);


A.
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.