PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#51 Re : Forum Général PHP » formulaire de contact » 06-08-2014 02:11:10

Je ne vois pas de session_start() au début d'index.php

#52 Re : Forum Général PHP » formulaire de contact » 06-08-2014 02:11:10

Saluton,

Dans tous les scripts et la doc j'ai toujours vu le paramètre Location de header() écrit avec une majuscule.

Ce serait ballot si c'était juste cela, non ?

#54 Re : Défouloir » Présentation rustik » 05-08-2014 19:35:08

Saluton, rustik,

Si tu veux féminiser ton pseudo je te conseille  : Rustika, c'est juste la traduction de rustique en espéranto.

Pour le reste, je crois que les propos de Jc sont la sagesse même, et pour l'hébergement tu peux aussi t'adresser à ceux qui hébergent ce forum, t'as un lien juste en bas de cette page.

@mike.

#55 Re : Forum Général PHP » [Résolu]une expression régulière est-elle possible ? » 18-07-2014 22:22:59

Bon alors j'ai remplacé tout ce fourbis

<?php
    foreach($leçon as $key=>$ligne){
        printf("<tr><td><b>%d-</b> %s</td><td><input type=\"button\" value=\"%s\" onClick=\"play('Al%d_%d');\"/></td>",
                $key,
                fillwithspan($ligne['argot'],$key),
                $ligne['prononcer'],
                intval($paĝo),
                $key              
                );


function fillwithspan($argot,$trid){
  if(strpos($argot,'(1)')!==false){
        $argot=str_replace('(1)','<span class="renvoi" onMouseover="montre(\'l'.$trid.'_1\');" onMouseout="cache(\'l'.$trid.'_1\');">(1)</span>',$argot);
        }
    if(strpos($argot,'(2)')!==false){
        $argot=str_replace('(2)','<span class="renvoi" onMouseover="montre(\'l'.$trid.'_2\');" onMouseout="cache(\'l'.$trid.'_2\');">(2)</span>',$argot);
        }
    if(strpos($argot,'(3)')!==false){
        $argot=str_replace('(3)','<span class="renvoi" onMouseover="montre(\'l'.$trid.'_3\');" onMouseout="cache(\'l'.$trid.'_3\');">(3)</span>',$argot);
        }
    if(strpos($argot,'(4)')!==false){
        $argot=str_replace('(4)','<span class="renvoi" onMouseover="montre(\'l'.$trid.'_4\');" onMouseout="cache(\'l'.$trid.'_4\');">(4)</span>',$argot);
        }
    if(strpos($argot,'(5)')!==false){
        $argot=str_replace('(5)','<span class="renvoi" onMouseover="montre(\'l'.$trid.'_5\');" onMouseout="cache(\'l'.$trid.'_5\');">(5)</span>',$argot);
        }
    if(strpos($argot,'(6)')!==false){
        $argot=str_replace('(6)','<span class="renvoi" onMouseover="montre(\'l'.$trid.'_6\');" onMouseout="cache(\'l'.$trid.'_6\');">(6)</span>',$argot);
        }
    if(strpos($argot,'(7)')!==false){
        $argot=str_replace('(7)','<span class="renvoi" onMouseover="montre(\'l'.$trid.'_7\');" onMouseout="cache(\'l'.$trid.'_7\');">(7)</span>',$argot);
        }
    if(strpos($argot,'(8)')!==false){
        $argot=str_replace('(8)','<span class="renvoi" onMouseover="montre(\'l'.$trid.'_8\');" onMouseout="cache(\'l'.$trid.'_8\');">(8)</span>',$argot);
        }
    if(strpos($argot,'(9)')!==false){
        $argot=str_replace('(9)','<span class="renvoi" onMouseover="montre(\'l'.$trid.'_9\');" onMouseout="cache(\'l'.$trid.'_9\');">(9)</span>',$argot);
        }
    if(strpos($argot,'(10)')!==false){
        $argot=str_replace('(10)','<span class="renvoi" onMouseover="montre(\'l'.$trid.'_10\');" onMouseout="cache(\'l'.$trid.'_10\');">(10)</span>',$argot);
        }
    if(strpos($argot,'(11)')!==false){
        $argot=str_replace('(11)','<span class="renvoi" onMouseover="montre(\'l'.$trid.'_11\');" onMouseout="cache(\'l'.$trid.'_11\');">(11)</span>',$argot);
        }
    return $argot;
    }

par

<?php
    foreach($leçon as $key=>$ligne){
        printf("<tr><td><b>%d-</b> %s</td><td><input type=\"button\" value=\"%s\" onClick=\"play('Al%d_%d');\"/></td>",
                $key,
                preg_replace('#\(([0-9]+)\)#', '<span class="renvoi" onmouseover="montre(\'l'.$key.'_$1\');" onmouseout="cache(\'l'.$key.'_$1\');">($1)</span>',$ligne['argot']),
                $ligne['prononcer'],
                intval($paĝo),
                $key              
                );

et, à ma grande surprise et satisfaction, j'obtiens le même résultat.
Je n'y comprends absolument rien, mais ça fonctionne impeccablement.

Merci à toi JC pour ta patience, promis dès que j'aurai retrouvé quelques neurones sains et un peu de temps, je chercherai à comprendre.

#56 Re : Forum Général PHP » [Résolu]une expression régulière est-elle possible ? » 18-07-2014 22:22:59

Bon, Ok, avec preg_match_all il me les trouve toutes.

Maintenant faut que je vois comment combiner ça avec preg_replace().

Ça me promet encore bien de l'amusement c't'affaire.

#57 Re : Forum Général PHP » [Résolu]une expression régulière est-elle possible ? » 18-07-2014 22:22:59

Ben, crénom ! qu'est-ce qui raconte dans la doc alors ?

C'est-y quoi ce flag PREG_OFFSET_CAPTURE ?

Si on ne peut plus se fier à la doc ...

#58 Re : Forum Général PHP » [Résolu]une expression régulière est-elle possible ? » 18-07-2014 22:22:59

Bon j'essaye d'avancer sur cette affaire. Je teste pour voir sir preg_match me trouve toutes les 'notes', notamment quand il y en a plusieurs dans une même ligne.
J'ai donc modifié le script comme suit :

function fillwithspan($argot,$trid){
   $pattern='#\(([0-9]+)\)#';
   preg_match($pattern,$argot,$results,PREG_OFFSET_CAPTURE);
   if (count($results)>0) { print_r($results);}

Et j'obtiens ces données

Array
(
    [0] => Array
        (
            [0] => (1)
            [1] => 19
        )

    [1] => Array
        (
            [0] => 1
            [1] => 20
        )
)
Array
(
    [0] => Array
        (
            [0] => (2)
            [1] => 13
        )
)
    [1] => Array
        (
            [0] => 2
            [1] => 14
        )
)
Array
(
    [0] => Array
        (
            [0] => (4)
            [1] => 12
        )

    [1] => Array
        (
            [0] => 4
            [1] => 13
        )
)
Array
(
    [0] => Array
        (
            [0] => (5)
            [1] => 36
        )

    [1] => Array
        (
            [0] => 5
            [1] => 37
        )
)
Array
(
    [0] => Array
        (
            [0] => (6)
            [1] => 14
        )

    [1] => Array
        (
            [0] => 6
            [1] => 15
        )
)

Où l'on voit bien que lorsqu'il y a plusieurs 'notes' dans une ligne, seule la première est détectée.
Dans la leçon 1 la ligne 2 comporte les 'notes' (2) et (3) et la ligne 11 les notes (6) et (7).
Alors que la constante PREG_OFFSET_CAPTURE, devrait assurer la capture de toutes les correspondances.

Doc PHP de preg_match() a écrit :

    Le paramètre flags peut prendre l'une des valeurs suivantes :

    PREG_OFFSET_CAPTURE
        Si cette option est activée, toutes les sous-chaînes qui satisfont le masque seront aussi identifiées par leur offset. Notez que cela modifie la valeur de matches qui devient un tableau dont chaque élément est un tableau contenant la chaîne correspondant au masque à l'offset 0 ainsi que l'offset de la chaîne dans subject à l'offset 1.

#59 Re : Forum Général PHP » [Résolu]une expression régulière est-elle possible ? » 18-07-2014 22:22:59

Evidemment  bien sûr (le boulet !!!) :

function fillwithspan($argot,$trid){
    $pattern='#\(([0-9]+)\)#';
    echo preg_match($pattern,$argot);

retourne, avec lecon0001.inc.php

fillwithspan($argot,$trid) a écrit :

1 1 1 0 0 1 0 0 0 0 1 0 0 0

Ce qui correspond bien au fait qu'il y ait des notes aux items 1, 2, 3, 6 et 11 et pas dans les autres. A ceci près que dans les items 2 et 11 il y a deux notes.

<?php
$leçon=array(1=>array('argot'=>'Mimile, tu radines (1)?',
                      'prononcer'=>'mimil tu radin\'',
                      'français'=>'Émile, venez-vous ?',
                      'notes'=>array(1=>"<b>(1) Tu radines ?</b>  Dans les phrases interrrogatives, l'inversion du sujet et du verbe, qui est la règle en français, n'est pratiquement jamais employée dans la langue populaire ; on ne dit pas &laquo; viens-tu ? &raquo;, mais <b>&laquo; tu viens ? &raquo;</b> ; la seule chose qui la distingue alors de la phrase affirmative correspondante est l'élévation de la voix sur la dernière ou sur les dernières syllabes. Notons que <b>radiner</b> peut être employé aussi sous la forme pronominale : <b> tu te radines ?</b>")
                      ),
             2=>array('argot'=>'(... Mimile y(2) la ferme)(3)',
                      'prononcer'=>'Mimililafèrm\'',
                      'français'=>'(Émile observe le silence)',
                      'notes'=>array(2=>'<b>(2) Mimile y la ferme </b>: dans la phrase populaire le sujet constitué par un substantitf est très souvent, mais pas toujours, renforcé par un pronom (<em>ici : il, prononcé <b>i</b> et écrit selon l\'usage <b>y</b></em>).',
                                     3=>'<b>(3) Y la ferme</b> (<em>sous-entendu <b>sa gueule</b></em>) : il se tait. <b>Ferme-la</b> (<em> ou <b> la ferme !</b>, ou <b>ferme ta gueule !</b></em>) sont les façons les plus courantes dans le peuple de traduire &lquo; Tais-toi ! &raquo; L\'argotier dira plutôt <b>Écrase !</b> (<em>qui contient une idée de menace</em>).')
                      ),
             3=>array('argot'=>'Tu viens-t-y(4), Mimile ?',
                      'prononcer'=>'tuvyiñti',
                      'français'=>'Venez-vous, Émile ?',
                      'notes'=>array(4=>'<b>(4)Tu viens-t-y ?</b> : l\interrogation est souvent marquée par une particule invariable analogue au <b>ne</b> latin et qui se prononce <b>ti</b> (<em>ou <b>i</b> quand la forme verbale se termine par un <b>t</b>) et que nous écrivons :<b> t-y</b> au <b>y</b>.</em> Exemple : <b>T\'entraves-t-y c\'que j\'te cause ?</b> : comprenez-vous ce que je vous dis ?')
                      ),
             4=>array('argot'=>'...(Mimile y moufte pas,',
                      'prononcer'=>'Mimilimouftëpa',
                      'français'=>'...(Émile fait comme si de rien n\'était,'
                      ),
             5=>array('argot'=>'Nanar y lui gueule dans l\'esgourde) :',
                      'prononcer'=>'Nanariluigoëldanslèsgourd\'',
                      'français'=>'Bernard lui crie à l\'oreille) :'
                      ),
             6=>array('argot'=>'Mimile, tu viens-t-y, oui ou merde ?(5)',
                      'prononcer'=>'Mimil, tuvyiñtihouihoumèrd\'',
                      'français'=>'Émile, venez-vous, oui ou non ?',
                      'notes'=>array(5=>'<b>(5) Oui ou merde ?</b>) : oui on non ? Ne pas en déduire que <b>merde</b> veut dire &laquo; non &raquo;. <b>Merde</b> n\'est pas seulement, en effet, &laquo; matière fécale de l\'homme et de certains animaux &raquo;, mais exclamation de mépris, d\'indignation, de refus, d\'impatience, de dépit, de douleur, etc., ou encore d\'étonnement, de surprise, d\'admiration. Exemple :  <b>Merde, les lardus.</b> Horreur, voici les policiers ! <b> Merde, c\'qu\'elle est belle !</b> Dieu comm elle est belle ! C\'est le maître mot de la langue française, le Mot, selon <b>Alfred Jarry</b>, qui a su lui donner ses lettres de noblesse (<em>et une de supplément au début d\'&laquo; Ubu-Roi &raquo; : <b>Merdre !</b></em>). Il peut avoir toutes les forces, toutes les efficacités, tous les sens. <b>Oui ou merde</b>, ici, marque mieux que oui ou non l\'impatience de bernard ; sons sens exact est : &laquo; Dis au besoin une injure, mais dis quelque chose !&raquo;')
                      ),
             7=>array('argot'=>'...(Mimile y l\'ouvre toujours pas,',
                      'prononcer'=>'Mimililouv\'toujourpa',
                      'français'=>'...(Émile continue à se taire,'                      
                      ),
             8=>array('argot'=>'y ligote pépère son canard.',
                      'prononcer'=>'iligot\' pépèr\'soñcanar',
                      'français'=>'il lit tranquillement son journal'
                      ),
             9=>array('argot'=>'Nanar l\'argougne par les endosses) :',
                      'prononcer'=>'nanarlargougn\'parlèzañdôss\'',
                      'français'=>'Bernard le saisit aux épaules) :',
                      ),
             10=>array('argot'=>'T\'es sourdingue ou tu te fous de ma gueule',
                      'prononcer'=>'tèsourdiñgh\'houtut\'foud\'magoël',
                      'français'=>'Êtes-vous sourd, ou vous moquez-vous de moi ?',
                      'image'=>'/img/001;jpg'
                      ),
             11=>array('argot'=>'Fais pas chier(6), merde, tu me casses les burnes(7).',
                      'prononcer'=>'fèpachié, mèrd\', tum\'kass\'lèburn\'',
                      'français'=>'Ne (me) traccassez pas, que diable ! vous m\'importunez !',
                      'notes'=>array(6=>'<b>(6) Fais pas chier !</b> (<em>noter la suppression du complément <b>me</b>, qui reste sous-entendu</em>)  : ne me dérange pas ! <b>Se faire chier</b> : s\'ennuyer. ',
                                      7=>'<b>mot à mot</b> : vous me brisez les testicules')
                      ),
             12=>array('argot'=>'Tu viens pas t\'en jeter un petit ?',
                      'prononcer'=>'tuvyiñtañch\'té huñ p\'ti',
                      'français'=>'Ne venez-vous pas boire un verre avec moi ?'
                      ),
             13=>array('argot'=>'Tu pouvais pas le dire d\'entrée,',
                      'prononcer'=>'tupouvèpal\'dirdañtré',
                      'français'=>'Ne pouviez-vous pas le dire tout de suite,'
                      ),
             14=>array('argot'=>'que tu voulais carmer l\'apéro ?',
                      'prononcer'=>'ktuvoulèkarmélapéro',
                      'français'=>'que vous désiriez (m\')offrir une boisson apéritive ?'
                      )
             );

#60 Re : Forum Général PHP » [Résolu]une expression régulière est-elle possible ? » 18-07-2014 22:22:59

Jc a écrit :

Je ne t'oublie pas MK, j'ai juste la tête sous l'eau. Je reviens vers toi au plus tôt.

En doutais-je ?

Jc a écrit :

En attendant fait un test en remplaçant ton pattern par le mien, voir ce que ça donne.

J'ai inséré au début du code de ma fonction

function fillwithspan($argot,$trid){
    $pattern='#\(([0-9]+)\)#';
    echo preg_match($pattern,'argot');

Et cela me retourne une jolie guirlande de 0 0 0 0 0 0

Doc PHP a écrit :

preg_match() retourne 1 si le pattern fourni correspond, 0 s'il ne correspond pas, ou FALSE si une erreur survient.

j'en conclus que ce pattern ne convient pas trop.

#61 Re : Forum Général PHP » problème depuis passage sur php 5.4 (fonction /variable) » 10-07-2014 01:55:18

Saluton,

Au vu des scripts, je ne vois pas comment les url ne viendraient pas à être polluées.
Rien à dire sur le script, il fait le boulot demandé, si ce n'est pas le résultat attendu c'est qu'il faudrait programmer le script pour qu'il évite de modifier tout argument href.

#62 Re : Forum Général PHP » mysql base de données connexion » 07-07-2014 07:37:58

Saluton,
Je ne vois pas pourquoi il en serait autrement si le script se résume à cela.

$select_db = mysql_select_db('bateau') or die (" data base not found ");

n'affichera jamais rien si la sélection de la base bateau n'échoue pas.

#63 Re : Forum Général PHP » [Résolu]une expression régulière est-elle possible ? » 18-07-2014 22:22:59

Merci Jc,

Mais je crains de ne pas tout comprendre (comme souvent) hmm

Le but est d'éventuellement remplacer dans $ligne['argot'] toute occurrence d'un nombre entre parenthèses par son équivalent encapsulé d'un <span> et de ses méthodes onmouseover() et onmouseout() en leur passant la valeur du nombre comme argument des fonctions montre() et cache().

Or preg_replace() attend trois arguments  : le motif recherché, le texte de remplacement, la chaîne dans laquelle chercher et substituer.

Et c'est sur ce dernier point que je bute, j'ai deux pattern, un pour le preg_match et un pour le preg_replace, ça, d'accord.

Mais comment imbriquer le preg_match et le preg_replace ?

#64 Re : Forum Général PHP » [Résolu]une expression régulière est-elle possible ? » 18-07-2014 22:22:59

Saluton,
Mon besoin de mise en forme finale est qu'au survol d'un numéro de note, par exemple (1) la note correspondante qui est par nature de type display:none devienne visible.
Ce que j'obtiens, par exemple sur cette page : http://www.avcxjo-moko-kantas.fr/LMAM/i … p?page=001Pour cela il faut que je rende réactive la zone (1) de l'item d'argot.
Comme la page est construite par PHP (il y aura in fine 100 pages de structure identique) les identifiants des lignes sont générés au fil de l'eau.

Et preg_replace est bien une fonction regex de substitution, donc je en vois aps ce qu'il y a d'incohérent à vouloir l'utiliser dans ce contexte.

#65 Re : Forum Général PHP » Afficher 1 images à côté d'un diapo en bannière d'un site web » 05-07-2014 15:17:26

fredbusiness a écrit :

C'est une partie de code php dans la CSS d'un site Wordpress.

J'avoue mon incrédutlité. Je ne vois vraiment pas ce que ce code PHP fait dans une CSS. Ni surtout à quoi sert PHP en l'occurence, le contenu de l'echo étant du pur HTML.

fredbusiness a écrit :

Et le code WP Cycle affiche un diapo géré par le plugin WP-Cycle dans les extensions WP

On n'est vraiment au-delà des limites de mes compétences.
Je n'utilise jamais aucun CMS et encore moins Word-Press.

#66 Re : Forum Général PHP » Afficher 1 images à côté d'un diapo en bannière d'un site web » 05-07-2014 15:17:26

Saluton,

Deux questions pourquoi cet echo, php n'apporte rien dans l'affaire, et qu'est-ce que wp_cycle() ?

#67 Re : Forum Général PHP » Collations / UTF8 ou que sais-je ? » 03-07-2014 20:28:13

Bon le problème de la navigation dans le glossaire réversible est réglé.

J'avais oublié que les ancres internes ne pointent plus sur l'attribut name mais sur l'attribut id. Lequel, bien sûr, doit être unique pour toute la page HTML.
Vous pouvez voir le résultat ici : www.avcxjo-moko-kantas.fr/LMAM/index.php?page=GLO

#68 Re : Forum Général PHP » Collations / UTF8 ou que sais-je ? » 03-07-2014 20:28:13

Bon, ne me demandez pas (enfin pas trop) comment j'ai fait, mais là, ça a vraiment l'air de fonctionner.
Pour des raisons que je ne m'explique pas, le résultat d'un

var_dump(iconv_get_encoding('all'));
?>

sur mon site retourne

VDMedia-hebergement a écrit :

Array
(
    [input_encoding] => ISO-8859-1
    [output_encoding] => ISO-8859-1
    [internal_encoding] => ISO-8859-1
)

Donc, bien que tout ce que j'y transfère via Filezilla soit, au départ en UTF8 sous Ubuntu gedit, j'ai dû considérer que tout se retrouvait en ISO-8859-1 sur le serveur. (Bizarre, bizarre.)

Bref voici les deux sources
les data:

<?php
$glossaire=array('esgourde'=>'oreille',
                 'radiner (se)'=>'arriver',
                 'radiner (se) 2'=>'venir',
                 'moufter (ne pas)'=>'dire (ne rien)',
                 'gueuler'=>'crier',
                 'fermer (la)'=>'se taire 2',
                 'ouvrir (ne pas l\')'=>'se taire 1',
                 'argougner'=>'saisir brutalement',
                 'endosses (les)'=>'épaules (les)',
                 'sourdingue'=>'sourd',
                 'chier (faire)'=>'importuner',
                 'burnes'=>'testicules',
                 'jeter (s\'en)'=>'boire',
                 'jeter (s\'en) 2'=>'avaler',
                 'entrée (d\')'=>'pour commencer',
                 'ratiches'=>'dent, voir aussi<b>chocotte, chicot, croc, crochet, domino',
                 'frelot'=>'frère, voir aussi frangin',
                 'roupane'=>'robe',
                 'tarin'=>'nez',
                 'cloporte (de<b>clot</b> la<b>porte</>)'=>'concierge',
                 'comac'=>'comme ça',
                 'mastard'=>'énorme',
                 'zob ou zeb ou zobi ou zébi'=>'pénis',
                 'grand-dab'=>'grand-père',
                 'proprio'=>'propriétaire',
                 'tutu'=>'vin',
                 'au poil'=>'épatant',
                 'caoua (kawa)'=>'café',
                 'bignole (la)'=>'concierge (la)',
                 'que tchi'=>'rien ou pas grand chosee',
                 'tire'=>'voiture, on dit aussi bagnole ou chiotte',
                 'toubib'=>'médecin',
                 'badour(e)'=>'beau (belle), bien.',
                 'chiotte'=>'voiture, on dit aussi tire ou bagnole',
                 'chiottes'=>'toilettes (WC)',
                 'belle-doche'=>'belle-mère on dit aussi belle-dab',
                 'bele-dab'=>'belle-mère, belle-doche est plus usité',
                 'grisolle'=>'bon marché',
                 'chéro'=>'cher, dispendieux, on dit aussi badoure',
                 'beaujol(pif)'=>'vin de Beaujolais',
                 'crocs (avoir les)'=>'dents, avoir faim',
                 'troquet'=>'bistrot (apocope de bistroquet)',
                 'frangin(e) (1)'=>'frère, sœur',
                 'frangine (une) (2)'=>'une fille ',
                 'peau de balle'=>'rien 1',
                 'que lape'=>'rien 2',
                 'que nib'=>'rien',
                 'pas lerche'=>'peu',
                 'clébard'=>'chien',
                 'bagnole'=>'voiture, on dit aussi tire ou chiotte',
                 'bergère'=>'conjointe, épouse',
                 'plume, plumard'=>'lit',
                 'ronfler, ronquer'=>'dormir 1',
                 'pioncer'=>'dormir 2',
                 'écraser (en)'=>'dormir 3',
                 'crève (avoir la)'=>'malade (être)',
                 'fouill(ous)e'=>'poche',
                 'plume'=>'pied de biche'
                 );

et le script

        <h2>Glossaire</h2>
        <section>
            <div id="argot">
                <h3>Argot >>>> Français</h3>
<?php
include 'glossaire.txt';
uksort($glossaire,"cmp");//classe le tableau par ordre alpha sur la key argot
$alpha='';
$glossinverse='';
foreach($glossaire AS $argot=>$français){ //rechercher l'alphabet du glossaire d'argot
    $alpha[strtoupper(substr(ascii127($argot),0,1))]=substr($argot,0,1);
    $glossinverse[$français]=$argot;// on en profite pour créer le glossaire inverse
    }
?>
                <table style="width:99%">
                    <tr class="alpha"><th colspan="2">
<?php
$th='';
foreach($alpha AS $lettre=>$null){
    $th.="<input type=\"button\" value=\"".$lettre."\" onClick=\"document.location.href='#$null';\"/>&nbsp;";
    }
    $th.="\n";
    echo $th;
?>
                    </tr>
<?php
$lettre='';
$class="alpha";
foreach($glossaire AS $argot=>$français){
        $class=($class=='') ? ' class="alpha" ': '';
        if(substr(ascii127($argot),0,1)!=$lettre){
            $lettre=substr(ascii127($argot),0,1);
            printf("<tr %s name=\"%s\"><td>%s</td><td><em>%s</em></td></tr>\n",$class, $lettre, $argot,$français);
            }
        else{
            printf("<tr %s><td>%s</td><td><em>%s</em></td></tr>\n",$class,$argot,$français);
            }
        }
?>                                    
                </table>
            </div>
            <div id="francais">
                <h3>Français >>>> Argot</h3>
<?php
$alpha='';
uksort($glossinverse,"cmp");
foreach($glossinverse AS $français=>$argot){//rechercher l'alphabet du glossaire inverse
    $alpha[strtoupper(substr(ascii127($français),0,1))]=substr($français,0,1);
    }
?>
                <table style="width:99%">
                    <tr class="alpha"><th colspan="2">
<?php
$th='';
$class="alpha";
foreach($alpha AS $lettre=>$null){
    $th.="<input type=\"button\" value=\"".strtoupper(ascii127($lettre))."\" onClick=\"document.location.href='#$null';\"/>&nbsp;";
    }
    $th.="\n";
    echo $th;
?>
                    </tr>
<?php                  
$lettre='';
foreach($glossinverse AS $français=>$argot){
        $class=($class=='') ? ' class="alpha" ': '';
        if(substr(ascii127($français),0,1)!=$lettre){
            $lettre=substr(ascii127($français),0,1);
            printf("<tr %s name=\"%s\"><td>%s</td><td><em>%s</em></td></tr>\n",$class,$lettre,$français, $argot);
            }
        else{
            printf("<tr %s><td>%s</td><td><em>%s</em></td></tr>\n",$class,$français,$argot);
            }
        }
?>                  
                </table>
            </div>
        </section>
<?php
function cmp($a, $b){
    $a=ascii127($a);
    $b=ascii127($b);
    if ($a == $b) {
        return 0;
        }
    return ($a < $b) ? -1 : 1;
    }
function ascii127($string){
$modif = str_replace(
      array(
        utf8_encode('à'), utf8_encode('â'), utf8_encode('ä'), utf8_encode('á'), utf8_encode('ã'), utf8_encode('å'),
        utf8_encode('î'), utf8_encode('ï'), utf8_encode('ì'), utf8_encode('í'),
        utf8_encode('ô'), utf8_encode('ö'), utf8_encode('ò'), utf8_encode('ó'), utf8_encode('õ'), utf8_encode('ø'),
        utf8_encode('ù'), utf8_encode('û'), utf8_encode('ü'), utf8_encode('ú'),
        utf8_encode('é'), utf8_encode('è'), utf8_encode('ê'), utf8_encode('ë'),
        utf8_encode('ç'), utf8_encode('ÿ'), utf8_encode('ñ'),
        utf8_encode('À'), utf8_encode('Â'), utf8_encode('Ä'), utf8_encode('Á'), utf8_encode('Ã'), utf8_encode('Å'),
        utf8_encode('Î'), utf8_encode('Ï'), utf8_encode('Ì'), utf8_encode('Í'),
        utf8_encode('Ô'), utf8_encode('Ö'), utf8_encode('Ò'), utf8_encode('Ó'), utf8_encode('Õ'), utf8_encode('Ø'),
        utf8_encode('Ù'), utf8_encode('Û'), utf8_encode('Ü'), utf8_encode('Ú'),
        utf8_encode('É'), utf8_encode('È'), utf8_encode('Ê'), utf8_encode('Ë'),
        utf8_encode('Ç'), utf8_encode('Ÿ'), utf8_encode('Ñ'), utf8_encode('æ'), utf8_encode('Æ'), utf8_encode('œ'), utf8_encode('Œ')
      ),
      array(
        'a', 'a', 'a', 'a', 'a', 'a',
        'i', 'i', 'i', 'i',
        'o', 'o', 'o', 'o', 'o', 'o',
        'u', 'u', 'u', 'u',
        'e', 'e', 'e', 'e',
        'c', 'y', 'n',
        'A', 'A', 'A', 'A', 'A', 'A',
        'I', 'I', 'I', 'I',
        'O', 'O', 'O', 'O', 'O', 'O',
        'U', 'U', 'U', 'U',
        'E', 'E', 'E', 'E',
        'C', 'Y', 'N', 'A', 'A', 'oe', 'OE'
      ),utf8_encode($string));

    return strtolower(utf8_encode($modif));
    }
   
?>

Bon maintenant il me reste à comprendre pourquoi les ancres internes ne fonctionnent pas, mais c'est une autre aventure ...

#69 Re : Forum Général PHP » Collations / UTF8 ou que sais-je ? » 03-07-2014 20:28:13

Euh non, en fait, ça ne fonctionne pas vraiment, mais on s'approche.

#70 Re : Forum Général PHP » Collations / UTF8 ou que sais-je ? » 03-07-2014 20:28:13

Bon finalement j'ai trouvé, ailleurs sur le web, une solution pas très élégante, mais qui semble fonctionner :

function ascii127($string){
$modif = str_replace(
      array(
        utf8_decode('à'), utf8_decode('â'), utf8_decode('ä'), utf8_decode('á'), utf8_decode('ã'), utf8_decode('å'),
        utf8_decode('î'), utf8_decode('ï'), utf8_decode('ì'), utf8_decode('í'),
        utf8_decode('ô'), utf8_decode('ö'), utf8_decode('ò'), utf8_decode('ó'), utf8_decode('õ'), utf8_decode('ø'),
        utf8_decode('ù'), utf8_decode('û'), utf8_decode('ü'), utf8_decode('ú'),
        utf8_decode('é'), utf8_decode('è'), utf8_decode('ê'), utf8_decode('ë'),
        utf8_decode('ç'), utf8_decode('ÿ'), utf8_decode('ñ'),
        utf8_decode('À'), utf8_decode('Â'), utf8_decode('Ä'), utf8_decode('Á'), utf8_decode('Ã'), utf8_decode('Å'),
        utf8_decode('Î'), utf8_decode('Ï'), utf8_decode('Ì'), utf8_decode('Í'),
        utf8_decode('Ô'), utf8_decode('Ö'), utf8_decode('Ò'), utf8_decode('Ó'), utf8_decode('Õ'), utf8_decode('Ø'),
        utf8_decode('Ù'), utf8_decode('Û'), utf8_decode('Ü'), utf8_decode('Ú'),
        utf8_decode('É'), utf8_decode('È'), utf8_decode('Ê'), utf8_decode('Ë'),
        utf8_decode('Ç'), utf8_decode('Ÿ'), utf8_decode('Ñ'), utf8_decode('æ'), utf8_decode('Æ'), utf8_decode('œ'), utf8_decode('Œ')
      ),
      array(
        'a', 'a', 'a', 'a', 'a', 'a',
        'i', 'i', 'i', 'i',
        'o', 'o', 'o', 'o', 'o', 'o',
        'u', 'u', 'u', 'u',
        'e', 'e', 'e', 'e',
        'c', 'y', 'n',
        'A', 'A', 'A', 'A', 'A', 'A',
        'I', 'I', 'I', 'I',
        'O', 'O', 'O', 'O', 'O', 'O',
        'U', 'U', 'U', 'U',
        'E', 'E', 'E', 'E',
        'C', 'Y', 'N', 'A', 'A', 'oe', 'OE'
      ),$string);
    return strtolower(utf8_encode($modif));
    }

#71 Re : Forum Général PHP » Message lorsque certains produits sont dans le panier » 29-06-2014 09:57:32

Excuse-moi pour le retard.

Il y a un truc que je ne comprend pas dans ta démarche, pourquoi aller chercher dans le table de base de données des infos déjà présentes dans l'array $_SESSION['liste'] juste pour vérifier que '1010' et 1014' sont bien dans cette liste ?

Au fait, peux-tu montrer le résultat d'un var_dump($_SESSION['liste']) ?

#72 Re : Forum Général PHP » Message lorsque certains produits sont dans le panier » 29-06-2014 09:57:32

Excuse-moi, j'étais en déplacement à Lyon depuis dimanche et je viens de rentrer mais là, tout de suite, je dois aller chez ma belle-mère.

je te réponds ce soir.
@+

#73 Re : Forum Général PHP » Message lorsque certains produits sont dans le panier » 29-06-2014 09:57:32

Saluton,

On va procéder par ordre.

Pour commencer, plutôt que de soumettre count($_SESSION['liste']) requêtes il faut utiliser la syntaxe SQL "IN(liste des id )" pour ne soumettre qu'une seule requête.

Ensuite, crois-tu que la condition ($enr[0]=='1010' && $enr[0]=='1014' ) puisse jamais être vérifiée ?

En d'autres termes, $enr[0] a-t-il la moindre chance d'être à la fois (&&) égal à '1010' et '1014' ?

#74 Re : Forum Général PHP » Besoin d'aide pour un formulaire (checkbox) » 19-06-2014 18:12:09

Saluton,

Ciel ! une Céleste, comment va Babar ?

Soyons sérieux :

<?php
  if(isset($_POST) && !empty($_POST)){
                switch (count($_POST[valeurs])){
                    case 0:
                    case 1:
                    case 2:
                    case 3: // si l'utilisateur coche < ou = à 3 cases
                        echo "J'affiche une phrase.";
                        break;
                    case 4:
                    case 5:
                    case 6: // si l'utilisateur coche > ou = 4 cases mais < ou = 6  cases
                        echo "j'affiche une phrase différente.";
                        break;
                    default: // si l'utilisateur coche >ou = à 7 cases
                        echo "j'affiche une phrase différente.";
                        break;
                    }
                }
  else{
    echo "Faudrait voir à cocher quelques cases !";
    }

#75 Forum Général PHP » Collations / UTF8 ou que sais-je ? » 03-07-2014 20:28:13

Maljuna Kris
Réponses : 4

Saluton,

Je me prends la tête depuis des heures avec un autre problème.

j'ai cet array associatif :

<?php
$glossaire=array('esgourde'=>'oreille',
                 'radiner (se)'=>'arriver',
                 'radiner (se) 2'=>'venir',
                 'moufter (ne pas)'=>'se taire',
                 'gueuler'=>'crier',
                 'fermer (la)'=>'se taire',
                 'ouvrir (ne pas l\')'=>'se taire',
                 'argougner'=>'saisir brutalement',
                 'endosses (les)'=>'épaules (les)',
                 'sourdingue'=>'sourd',
                 'chier (faire)'=>'importuner',
                 'burnes'=>'testicules',
                 'jeter (s\'en)'=>'boire',
                 'jeter (s\'en) 2'=>'avaler',
                 'entrée (d\')'=>'pour commencer',
                 'ratiches'=>'dent, voir aussi<b>chocotte, chicot, croc, crochet, domino',
                 'frelot'=>'frère, voir aussi frangin',
                 'roupane'=>'robe',
                 'tarin'=>'nez',
                 'cloporte (de<b>clot</b> la<b>porte</>'=>'concierge',
                 'comac'=>'comme ça',
                 'mastard'=>'énorme',
                 'zob ou zeb ou zobi ou zébi'=>'pénis',
                 'grand-dab'=>'grand-père',
                 'proprio'=>'propriétaire',
                 'tutu'=>'vin',
                 'au poil'=>'épatant',
                 'caoua (kawa)'=>'café',
                 'bignole (la)'=>'concierge (la)',
                 'que tchi'=>'rien ou pas grand chosee',
                 'tire'=>'voiture, on dit aussi bagnole ou chiotte',
                 'toubib'=>'médecin',
                 'badoure'=>'cher, dispendieux, on dit aussi chéro',
                 'chiotte'=>'voiture, on dit aussi tire ou bagnole',
                 'chiottes'=>'toilettes (WC)',
                 'belle-doche'=>'belle-mère on dit aussi belle-dab',
                 'bele-dab'=>'belle-mère, belle-doche est plus usité',
                 'grisolle'=>'bon marché',
                 'chéro'=>'cher, dispendieux, on dit aussi badoure',
                 'beaujol(pif)'=>'vin de Beaujolais',
                 'crocs (avoir les)'=>'dents, avoir faim',
                 'troquet'=>'bistrot (apocope de bistroquet)',
                 'frangine (1)'=>'sœur (du frère)',
                 'frangine (une) (2)'=>'une fille ',
                 'peau de balle'=>'rien 1',
                 'que lape'=>'rien 2',
                 'que nib'=>'rien',
                 'pas lerche'=>'peu',
                 'clébard'=>'chien',
                 'bagnole'=>'voiture, on dit aussi tire ou chiotte'
                 );

l'objectif est de le classer par ordre alphabétique croissant sur les index d'abord puis sur les valeurs (en gardant l'association clé=>valeur.
J'y parviens très bien avec ce jeux de fonctions :

function cmp($a, $b){
    $a=ascii127($a);
    $b=ascii127($b);
    if ($a == $b) {
        return 0;
        }
    return ($a < $b) ? -1 : 1;
    }
function ascii127($string){
    $diacritiques=array("à","â","ä","é","è","ê","ë","î","ï","ô","ù","û","ü","æ","œ");
    $simples     =array("a","a","a","e","e","e","e","i","i","o","u","u","u","ae","oe");
    return str_replace($diacritiques,$simples,strtolower($string));
    }

appelées dans ce script :

        <section>
            <div id="argot">
                <h3>Argot >>>> Français</h3>
<?php
include 'glossaire.txt';
uksort($glossaire,"cmp");//classe le tableau par ordre alpha sur la key argot
$alpha='';
$glossinverse='';
foreach($glossaire AS $argot=>$français){ //rechercher l'alphabet du glossaire d'argot
    $alpha[strtoupper(ascii127(substr($argot,0,1)))]=substr($argot,0,1);
    $glossinverse[$français]=$argot;// on en profite pour créer le glossaire inverse
    }
?>
                <table style="width:99%">
                    <tr class="alpha"><th colspan="2">
<?php
$th='';
foreach($alpha AS $lettre=>$null){
    $th.="<input type=\"button\" value=\"".$lettre."\" onClick=\"document.location.href='#$null';\"/>&nbsp;";
    }
    $th.="\n";
    echo $th;
?>
                    </tr>
<?php
$lettre='';
$class="alpha";
foreach($glossaire AS $argot=>$français){
        $class=($class=='') ? ' class="alpha" ': '';
        if(ascii127(substr($argot,0,1))!=$lettre){
            $lettre=ascii127(substr($argot,0,1));
            printf("<tr %s name=\"%s\"><td>%s</td><td><em>%s</em></td></tr>\n",$class, $lettre, $argot,$français);
            }
        else{
            printf("<tr %s><td>%s</td><td><em>%s</em></td></tr>\n",$class,$argot,$français);
            }
        }
?>                                    
                </table>
            </div>
            <div id="francais">
                <h3>Français >>>> Argot</h3>
<?php
$alpha='';
uksort($glossinverse,"cmp");
foreach($glossinverse AS $français=>$argot){//rechercher l'alphabet du glossaire inverse
    $alpha[strtoupper(ascii127(substr($français,0,1)))]=substr($français,0,1);
    }
?>
                <table style="width:99%">
                    <tr class="alpha"><th colspan="2">
<?php
$th='';
$class="alpha";
foreach($alpha AS $lettre=>$null){
    $th.="<input type=\"button\" value=\"".strtoupper(ascii127($lettre))."\" onClick=\"document.location.href='#$null';\"/>&nbsp;";
    }
    $th.="\n";
    echo $th;
?>
                    </tr>
<?php                  
$lettre='';
foreach($glossinverse AS $français=>$argot){
        $class=($class=='') ? ' class="alpha" ': '';
        if(ascii127(substr($français,0,1))!=$lettre){
            $lettre=ascii127(substr($français,0,1));
            printf("<tr %s name=\"%s\"><td>%s</td><td><em>%s</em></td></tr>\n",$class,$lettre,$français, $argot);
            }
        else{
            printf("<tr %s><td>%s</td><td><em>%s</em></td></tr>\n",$class,$français,$argot);
            }
        }
?>                  
                </table>
            </div>
        </section>
<?php

Mon souci est que le 'é' de 'épaules dans l'item

'endosses (les)'=>'épaules (les)',

ne se transforme pas en E.

Et pourtant j'ai testé

echo strtotupper(asci127("épaule"));

qui affiche bien 'EPAULE'.

Vous pouvez voir ce script ici : http://www.avcxjo-moko-kantas.fr/LMAM/i … p?page=GLO

Pied de page des forums

Propulsé par FluxBB