CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[fonc] découpe une chaine en lettres

darth-bane
darth-bane
Niveau 10
24 octobre 2006 à 18:26:02

Oups ! Je corrige mon code, $resultat = ´´ est inutile.

jehuty21
jehuty21
Niveau 10
24 octobre 2006 à 18:27:25

Le transtypage, oui, ca fonctionne bien, mais j´aime pas :p ( les trigger_errors(), c´est tellement bon :coeur: )

Et puis, vivement une version de PHP avec un typage fort. A ce moment là, on aura plus besoin de s´embeter avec tout ca ^^´

@Gugus, je t´engeule pas. Si je t´engueulais .. lol

jehuty21
jehuty21
Niveau 10
24 octobre 2006 à 18:28:09

trigger_error() *

darth-bane
darth-bane
Niveau 10
24 octobre 2006 à 18:35:50

J´avoue ne pas connaître les trigger_error() :-(

jehuty21
jehuty21
Niveau 10
24 octobre 2006 à 18:46:05

http://be2.php.net/trigger_error

La doc, c´est la meilleure amie de toute personne qui fais du php

gugus963
gugus963
Niveau 10
24 octobre 2006 à 18:51:07

Bah j´ai rien calé au code de jehuty21, il est pas bien présenté, on voit rien. Et je ne connais pas la moitié des fonctions qu´il utilise, et le manuel php, ben... Sa méthode n´est pas très explicite et son code c´est un truc du barbare :p)

Je crois que je vais rester avec mon do while, parce que le transtypage ben j´ai rien compris au code de notre modo (je suis un novice!). :-p

Ma fonction me convient comme cela :)
Et tu dis "Ta fonction, elle est moche, et vraiment mal faites." Bah je sais pas pourquoi, explique, elle est peut être trop simpliste et trop étalée pour toi, pourquoi n´est elle pas bien ?

darth-bane
darth-bane
Niveau 10
24 octobre 2006 à 18:53:54

Je suis bien d´accord, j´utilise la "Bible PHP" de Micro Application. C´est seulement que je n´ai pas encore vu cette partie :rire:

En fait, en ce moment, je bosses peu en PHP, je suis en train de potasser "Ajax en pratique" de CampusPress et je galère pas mal sur le ´réusinage´ :-(

darth-bane
darth-bane
Niveau 10
24 octobre 2006 à 19:13:02

Le transtypage, c´est simple, c´est le fait de convertir des données d´un type à un autre. En l´occurrence d´une variable string à une variable array.
$tableau = (array)$maVariable;
on spécifie que la variable $tableau est un array de $mavariable.
ensuite, il suffit de travaille avec $tableau.

En ce qui concerne la fonction de jehuty21, c´est en fait assez simple (il faut vraiment que tu finisse les cours du SDZ).

function get_adn($str)
{
// vérification qu´une séquence a été correctement
saisie avec les caractères A, C, G, et T. Affichage éventuel d´un message d´erreur.
if(!preg_match(´`^[ACGT]+$`´, ($str = strtoupper($str))))
trigger_error(´Format incorrect´, E_USER_ERROR);
$return = ´Base: ´.$str.´<br />Conversion: ´;
// tableau de conversion
$conv = array(´A´ => ´T´, ´C´ => ´G´, ´G´ => ´C´,
´T´ => ´A´);
// récupération de chaque caractères de la chaîne
dans un tableau de caractères
$str = explode(´|´, rtrim(chunk_split($str, 1, ´|´), ´|´));
// boucle de traitement du tableau
foreach($str as $val)
$return .= $conv[$val];
return $return;
}

Ta fonction ne prends pas en compte le fait que qu
elqu´un peux saisir une séquence incorrecte.
Elle est également assez lourde.

Sincèrement, utilise une fonction optimisée quand tu le peux. Tu n´est pas obligé de tout comprendre maintenant, tu pourras y revenir plus tard. Mais si tu garde ta fonction actuelle, tu sera obligé de revenir plus tard pour la corriger et ce ne sera pas obligatoirement évident.

jehuty21
jehuty21
Niveau 10
24 octobre 2006 à 19:46:16

Pour la présentation du code, j´y peut rien si jv.com ne connait pas la balise <pre></pre> ( texte préformaté ( = conservation espace, tabulation & co. )

Quand tu ne comprend pas un code, soit tu essaies de le comprendre, soit tu demandes des explications, les deux sont bons et profitables.

Quant au manuel PHP, il est très bien, t´as juste à entrer le nom de la fonction dans le champs de recherche et tu as tout: utilisation, différent paramètre, code d´exemple, ..
Le BABA de quelqu´un qui code, c´est de savoir lire une documentation

Ta méthode, je la trouve mauvaise car:
- Tu met ton preg_match dans a boucle, pour vérifier les caractère un à un, très mauvais pour plusieurs raisons:
1°. C´est lourd
2°. tu teste caractère par caractère, donc pas besoin de preg_match(), un simple $str[$i] == ´A´ || $str[$i] == ´T´ .. suffirait, et est bien moins lourd.
- Les délimiteurs de regex, moui, le dièse, c´est mieux que le !, mais le meilleur délimiteur est `( alt gr + 7 )
- Assignation de variable inutile, et donc plus de mémoire pour rien ( à quoi ca sert de faire $lettre = $lettre0? autant utiliser $lettre0 directement )
- Un paquet de condition pour rien, un array est bien plus indiqué dans ce genre de cas ( vu que la valeur existe toujours, sinon le preg_match() devrait retourner false )

C´est déjà pas mal ^^

Ah oui, pour mettre une chaîne en majuscule, il y a strtoupper(), et dans ce cas, ca t´éviterais 4 or dans tes conditions

Et non, ce code n´est pas barbare, il est tout gentil ^^
Il y a pire, bien pire, bien plus que tu ne peux l´imaginer :p

darth-bane
darth-bane
Niveau 10
24 octobre 2006 à 19:52:04

"Assignation de variable inutile, et donc plus de mémoire pour rien ( à quoi ca sert de faire $lettre = $lettre0? autant utiliser $lettre0 directement )"

Dans son cas, elle était nécessaire car en fin de fonction il affiche l´ancienne chaîne et la nouvelle.

jehuty21
jehuty21
Niveau 10
24 octobre 2006 à 19:55:47

Non, parce que si ca fonction était plus structurée et logique, il n´aurait pas besoin de copier sa chaîne.
Soit il retournerais en une fois la nouvelle chaîne, soit il générerais la chaîne finale à partir de la première ;)

darth-bane
darth-bane
Niveau 10
24 octobre 2006 à 20:12:31

Mais comme c´est une variable locale, elle sera détruite dès la sortie de la fonction, ce n´est donc pas très grave. Pas optimisé, mais pas graâve !

gugus963
gugus963
Niveau 10
25 octobre 2006 à 16:35:08

Euh... Oui ^^

darth-bane
darth-bane
Niveau 10
25 octobre 2006 à 16:40:40

C´est vrai qu´il est plus propre de ne pas gérer l´affichage dans la fonction, mais dans la partie de code qui appelle la fonction. La fonction, elle ne doit que renvoyer le résultat du traitement.

En gros du devrais faire :
echo $variableAvantTraitement . ´ -> ´ . fonctionDeTraitement($variableAvantTraitement);

gugus963
gugus963
Niveau 10
25 octobre 2006 à 17:06:30

OK

gugus963
gugus963
Niveau 10
26 octobre 2006 à 16:10:55

Je crée un script de news, donc ça c´est fait, et là je fais une espèce de page où le visiteur entre une valeur pour l´id, et ça lui sort la news correspondante, bon ça c´est fait, c´est pas bien dur, alors voici le code :
http://www.simmstein.be/wall-bTXtVv9w-php.htm

Eh bien il y a deux problèmes :

- Ca va me donner "News existantes : 2, 3, ..." au lieu de "News existantes : 2, 3 ..." ce qui est normal, mais comment puis-je régler ce problème ? Si je supprime la virgule, ça va me donner ça "News existantes : 2 3 ..." ce qui n´est pas mieux...

- Et un plus gros problème, c´est que dans ma condition, on vérifie que $_GET[´id´] existe, qu´il n´est pas vide, non nul, est numérique entier... Mais si on entre une valeur d´id qui n´existe pas, ça nous donne ça "News n° postée le Jeudi 01 Janvier 1970 par :" et bon c´est pas génial... J´ai essayé en faisant
http://www.simmstein.be/wall-3PepK6Mg-php.htm
Mais bon... Si vous savez m´aider ! :)

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment