Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2546 connectés 

 


Pour ou contre du changement sur le topic ?


 
35.7 %
 5 votes
1.  Oui, faq / bonnes pratiques + blabla@php
 
 
0.0 %
        0 vote
2.  Oui, blabla@php uniquement
 
 
7.1 %
 1 vote
3.  Ce topic mérite la poubelle. Pauvre poubelle
 
 
21.4 %
 3 votes
4.  Non, ce topic reste tel quel
 
 
35.7 %
 5 votes
5.  Obiwan n'aime pas le php
 

Total : 16 votes (2 votes blancs)
Ce sondage est clos, vous ne pouvez plus voter
 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  28  29  30  ..  66  67  68  69  70  71
Auteur Sujet :

blabla@php | faq et bonnes pratiques page 1

n°1962096
bixibu
Ca ... c'est fait!
Posté le 01-02-2010 à 20:16:52  profilanswer
 

Reprise du message précédent :
Oùqueilestleprobleme :o


---------------
App Android NextGP : Store - TU | Makerworld
mood
Publicité
Posté le 01-02-2010 à 20:16:52  profilanswer
 

n°1962123
skeye
Posté le 01-02-2010 à 22:20:27  profilanswer
 

bixibu a écrit :

Oùqueilestleprobleme :o


new $toto() [:everything4free]


---------------
Can't buy what I want because it's free -
n°1962207
FlorentG
Posté le 02-02-2010 à 10:50:04  profilanswer
 

skeye a écrit :

new $toto() [:everything4free]


C'est malheureusement le plus rapide pour instancier un truc à partir du nom [:sadnoir] Tu peux t'amuser via l'API Reflection, mais c'est légèrement plus lent (si utilisé moult fois dans un même scrÿpt)

n°1962209
nraynaud
lol
Posté le 02-02-2010 à 10:55:10  profilanswer
 

http://www.php.net/manual/fr/pdo.lastinsertid.php
bonjour, en dehors d'une "bonne pratique" est-ce qu'il y a une pratique qui marche sur plusieurs base pour récupérer l'ID de la dernière insertion ?


---------------
trainoo.com, c'est fini
n°1962210
theredled
● REC
Posté le 02-02-2010 à 10:58:26  profilanswer
 

FlorentG a écrit :


C'est malheureusement le plus rapide pour instancier un truc à partir du nom [:sadnoir] Tu peux t'amuser via l'API Reflection, mais c'est légèrement plus lent (si utilisé moult fois dans un même scrÿpt)


Et légèrement plus bloat :o


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1962213
skeye
Posté le 02-02-2010 à 11:09:37  profilanswer
 

FlorentG a écrit :


C'est malheureusement le plus rapide pour instancier un truc à partir du nom [:sadnoir] Tu peux t'amuser via l'API Reflection, mais c'est légèrement plus lent (si utilisé moult fois dans un même scrÿpt)


 
ouais enfin faut voir le reste du code, là (quickstart de zf en version 1.10) :
 

Code :
  1. public function setDbTable($dbTable)
  2.    {
  3.        if (is_string($dbTable)) {
  4.            $dbTable = new $dbTable();
  5.        }
  6.        if (!$dbTable instanceof Zend_Db_Table_Abstract) {
  7.            throw new Exception('Invalid table data gateway provided');
  8.        }
  9.        $this->_dbTable = $dbTable;
  10.        return $this;
  11.    }
  12.  
  13.    public function getDbTable()
  14.    {
  15.        if (null === $this->_dbTable) {
  16.            $this->setDbTable('Application_Model_DbTable_Guestbook');
  17.        }
  18.        return $this->_dbTable;
  19.    }


 
lolilol, Application_Model_DbTable_Guestbook c'est une classe qu'ils définissent eux-mêmes 10 lignes plus haut...on fait exactement la même chose avec
 

Code :
  1. public function getDbTable()
  2.    {
  3.        if (null === $this->_dbTable) {
  4.            $this->_dbTable = new Application_Model_DbTable_Guestbook();
  5.        }
  6.        return $this->_dbTable;
  7.    }


---------------
Can't buy what I want because it's free -
n°1962214
skeye
Posté le 02-02-2010 à 11:10:34  profilanswer
 

...et instancier à-partir du nom ça devrait être un besoin assez exceptionnel, trouver ça dans un quickstart c'est ridicule amha.:o


---------------
Can't buy what I want because it's free -
n°1962216
theredled
● REC
Posté le 02-02-2010 à 11:13:32  profilanswer
 

skeye a écrit :

 

lolilol, Application_Model_DbTable_Guestbook c'est une classe qu'ils définissent eux-mêmes 10 lignes plus haut...on fait exactement la même chose avec

 
Code :
  1. public function getDbTable()
  2.    {
  3.        if (null === $this->_dbTable) {
  4.            $this->_dbTable = new Application_Model_DbTable_Guestbook();
  5.        }
  6.        return $this->_dbTable;
  7.    }



Bah c'est juste qu'ils se forcent à utiliser le setter en interne, ça peut être utile si tu veux faire un truc à chaque changement de dbTable . Après je ne connais absolument pas le contexte :o

Message cité 1 fois
Message édité par theredled le 02-02-2010 à 11:14:17

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1962218
skeye
Posté le 02-02-2010 à 11:16:40  profilanswer
 

theredled a écrit :


Bah c'est juste qu'ils se forcent à utiliser le setter en interne, ça peut être utile si tu veux faire un truc à chaque changement de dbTable . Après je ne connais absolument pas le contexte :o


 
Si tu veux à tout prix faire un setter tu passes directement en paramètre un Zend_Db_Table_Abstract, pas un nom de classe.
C'est parfaitement idiot, comme fonctionnement...puis bon en l'occurrence avoir un setter public ça veut dire que tu peux changer la table sur laquelle est mappé un objet de ton modèle, ce qui me parait douteux...:o


---------------
Can't buy what I want because it's free -
n°1963527
flo850
moi je
Posté le 05-02-2010 à 22:29:37  profilanswer
 

ça apporte des extensions a php  
 
mais ce n'est pas le graal


---------------

mood
Publicité
Posté le 05-02-2010 à 22:29:37  profilanswer
 

n°1963528
theredled
● REC
Posté le 05-02-2010 à 22:43:00  profilanswer
 

C'est pas un peu l'ancêtre de Zend Framework ? [:klemton]


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1963996
skeye
Posté le 08-02-2010 à 17:54:50  profilanswer
 

'tain mais ZF ya une autre solution qu'aller lire le code pour comprendre comment il fait tous les trucs qu'il automatise?[:pingouino]
Ya pas la moitié des trucs qui sont documentés dans ce putain de machin...[:el g]


---------------
Can't buy what I want because it's free -
n°1963997
theredled
● REC
Posté le 08-02-2010 à 17:56:01  profilanswer
 

J'imagine que non, vu que Symfony c'est pareil et que c'est le framework php le mieux documenté :o

Message cité 1 fois
Message édité par theredled le 08-02-2010 à 17:56:40

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1964001
skeye
Posté le 08-02-2010 à 18:00:34  profilanswer
 

theredled a écrit :

J'imagine que non, vu que Symfony c'est pareil :o


ok...[:moule_bite]
Ces cons permettent d'instancier automatiquement ton adapter de base de données via le fichier de conf de ton appli, mais jamais ils donnent la syntaxe qui permet de passer certains paramètres.[:moule_bite]
...et alors pour organiser ton appli en plusieurs modules c'est la fête du slip...la seule solution qui semble fonctionner c'est de répliquer ton arbo controllers/models/views dans un répertoire pour chaque module...[:dawak]
Genre je veux une partie publique et un backoffice, impossible de juste coller des sous-répertoires adhoc à mes controllers et views existants.


---------------
Can't buy what I want because it's free -
n°1964154
theredled
● REC
Posté le 09-02-2010 à 12:55:39  profilanswer
 

Code :
  1. $foo = null;
  2. $foo->param += 1;


Citation :

Strict standards: Creating default object from empty value


Et c'est tout [:moule_bite]


Message édité par theredled le 09-02-2010 à 12:55:49

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1965486
skeye
Posté le 12-02-2010 à 15:10:56  profilanswer
 

Hep les experts, ça existe pas d'origine une fonction qui prend une chaine et vire les accents et autres tréma?[:autobot]


---------------
Can't buy what I want because it's free -
n°1965491
flo850
moi je
Posté le 12-02-2010 à 15:16:25  profilanswer
 

non :/
en meme temps, c'est raide dans le cas général, il t'en faut une par jeu de caractères


Message édité par flo850 le 12-02-2010 à 15:16:32

---------------

n°1965493
*syl*
--> []
Posté le 12-02-2010 à 15:17:05  profilanswer
 

Nan ça n'existe pas.. c'est pas comme si c'était utile... :o

n°1965496
FlorentG
Posté le 12-02-2010 à 15:21:51  profilanswer
 

skeye a écrit :

Hep les experts, ça existe pas d'origine une fonction qui prend une chaine et vire les accents et autres tréma?[:autobot]


Moi j'utilise un truc style  

Code :
  1. iconv('utf-8', 'us-ascii//TRANSLIT', iconv('utf-8', 'utf-8//IGNORE', $str))

n°1965511
skeye
Posté le 12-02-2010 à 15:34:48  profilanswer
 

*syl* a écrit :

Nan ça n'existe pas.. c'est pas comme si c'était utile... :o


 
J'ai besoin de générer un truc du style prenom.nom sans caractères à la con.[:jagstang]
 

FlorentG a écrit :


Moi j'utilise un truc style  

Code :
  1. iconv('utf-8', 'us-ascii//TRANSLIT', iconv('utf-8', 'utf-8//IGNORE', $str))



 
Ca me vire les 'É' sans les remplacer, ça.[:petrus75]
pas envie d'implémenter ce genre de trucs [:sadnoir] :
 

Code :
  1. Function Englishizer(strIn As String) As String
  2.     Dim strOut As String
  3.     Dim strMid As String
  4.     Dim n As Integer
  5.     For n = 1 To Len(strIn)
  6.         strMid = Mid(strIn, n, 1)
  7.         Select Case Asc(strMid)
  8.         Case 192 To 197:
  9.             strMid = "A"
  10.         Case 198:
  11.             strMid = "AE"
  12.         Case 199:
  13.             strMid = "C"
  14.         Case 200 To 203:
  15.             strMid = "E"
  16.         Case 204 To 207:
  17.             strMid = "I"
  18.         Case 208:
  19.             strMid = "D"
  20.         Case 209:
  21.             strMid = "N"
  22.         Case 210 To 214, 216:
  23.             strMid = "O"
  24.         Case 215:
  25.             strMid = "x"
  26.         Case 217 To 220:
  27.             strMid = "U"
  28.         Case 221:
  29.             strMid = "Y"
  30.         Case 222, 254:
  31.             strMid = "p"
  32.         Case 223:
  33.             strMid = "B"
  34.         Case 224 To 229:
  35.             strMid = "a"
  36.         Case 230:
  37.             strMid = "ae"
  38.         Case 231:
  39.             strMid = "c"
  40.         Case 232 To 235:
  41.             strMid = "e"
  42.         Case 236 To 239:
  43.             strMid = "i"
  44.         Case 240, 242 To 246, 248:
  45.             strMid = "o"
  46.         Case 241:
  47.             strMid = "n"
  48.         Case 249 To 252:
  49.             strMid = "u"
  50.         Case 253, 255:
  51.             strMid = "y"
  52.         End Select
  53.         Englishizer = Englishizer + strMid
  54.     Next
  55. End Function


---------------
Can't buy what I want because it's free -
n°1965515
Dj YeLL
$question = $to_be || !$to_be;
Posté le 12-02-2010 à 15:38:55  profilanswer
 

Fût un temps, j'ai écris ça :
 

Code :
  1. function slugify($string, $separator = false)
  2.     {
  3.         setlocale(LC_CTYPE, 'fr_FR.utf8');
  4.         $string = preg_replace('`[^\pL\pN]+`u', '-', $string);
  5.         $string = iconv('utf-8', 'us-ascii//TRANSLIT', $string);
  6.         $string = mb_strtolower($string);
  7.         $string = preg_replace('`[^a-z0-9-]+`', '', $string);
  8.         $string = trim($string, '-');
  9.         
  10.         if($separator !== false)
  11.             $string = str_replace('-', $separator, $string);
  12.         
  13.         return $string;
  14.     }


 
S't'un peu long, mais je n'avais jamais trouvé de truc qui marche à tous les coups pour ce que j'avais besoin de faire... pour le moment je n'ai pas eu de problème avec ça (si c'est bien la dernière que j'ai faite)


---------------
Gamertag: CoteBlack YeLL
n°1965524
FlorentG
Posté le 12-02-2010 à 16:09:28  profilanswer
 

skeye a écrit :

Ca me vire les 'É' sans les remplacer, ça.[:petrus75]


En fait j'ai le même problème sous nunux. Sous win32, j'ai bien des "e" à la place [:sadnoir] J'crois que mon prochain serveur sera un Win Server 2K8, y'a quand-même moins de couilles que sous ce bricolage ingérable qu'est linux [:dawak]

n°1965537
skeye
Posté le 12-02-2010 à 16:21:17  profilanswer
 

FlorentG a écrit :


En fait j'ai le même problème sous nunux. Sous win32, j'ai bien des "e" à la place [:sadnoir] J'crois que mon prochain serveur sera un Win Server 2K8, y'a quand-même moins de couilles que sous ce bricolage ingérable qu'est linux [:dawak]

 

Je suis parti sur une magnifique fonction :

Code :
  1. [...]
  2.         for($i = 0; $i < strlen($tmp); $i++){
  3.             if((192 <= ord($tmp[$i]) && ord($tmp[$i]) <= 197) or (224 <= ord($tmp[$i]) && ord($tmp[$i]) <= 229)){
  4.                 $tmp2 .= 'a';
  5.             }
  6.             else{
  7.                 if((200 <= ord($tmp[$i]) && ord($tmp[$i]) <= 203) or (232 <= ord($tmp[$i]) && ord($tmp[$i]) <= 235)){
  8.                     $tmp2 .= 'e';
  9.                 }
  10.                 else{
  11.                     if((204 <= ord($tmp[$i]) && ord($tmp[$i]) <= 207) or (236 <= ord($tmp[$i]) && ord($tmp[$i]) <= 239)){
  12.                         $tmp2 .= 'i';
  13.                     }
  14.                     else{
  15.                         $tmp2 .= $tmp[$i];
  16.                     }
  17.                 }
  18.  
  19.             }
  20. [...]
 

(sous forme de switch c'est immonde...[:moule_bite])
(...et oui, je veux que des minuscules de toute manière.:o )


Message édité par skeye le 12-02-2010 à 16:21:44

---------------
Can't buy what I want because it's free -
n°1965541
___alt
Posté le 12-02-2010 à 16:24:22  profilanswer
 

[:what has been seen]
 


---------------
TRIPS RIGHT BUNCH F SHUTTLE TOM AND JERRY RIGHT YELLOW
n°1965542
skeye
Posté le 12-02-2010 à 16:25:23  profilanswer
 


comme tu dis.[:sadnoir]
...et lolcédille.[:moule_bite]


Message édité par skeye le 12-02-2010 à 16:25:27

---------------
Can't buy what I want because it's free -
n°1965543
theredled
● REC
Posté le 12-02-2010 à 16:25:47  profilanswer
 

Sinon ya

Code :
  1. static public function removeAccents($str)
  2.     {
  3.         return utf8_encode(strtr(utf8_decode($str),
  4.                                  utf8_decode("ŠŒŽšœžŸ¥µÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿ" ),
  5.                                  "SOZsozYYuAAAAAAACEEEEIIIIDNOOOOOOUUUUYsaaaaaaaceeeeiiiionoooooouuuuyy" ));    
  6.     }


(pour de l'UTF-8, dans un script encodé UTF-8)
(à adapter si t'as vraiment besoin de caractères non-Latin-1 [:dawao])
(d'ailleurs les caractères listés non-Latin-1 n'ont rien à faire là a priori [:klemton])

 

Et si tu bosses en Latin-1 :

Code :
  1. static public function removeAccents($str)
  2.     {
  3.         return strtr($str,
  4.             "ŠŒŽšœžŸ¥µÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿ" ),
  5.             "SOZsozYYuAAAAAAACEEEEIIIIDNOOOOOOUUUUYsaaaaaaaceeeeiiiionoooooouuuuyy" );    
  6.     }
 

C'est pas over-top tout ça, mais c'est simple et court.

Message cité 2 fois
Message édité par theredled le 12-02-2010 à 16:28:49

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1965546
flo850
moi je
Posté le 12-02-2010 à 16:26:20  profilanswer
 

fait gaffe avec strlen d'une chaine utf8 , je crois me souvenir qu'il y a des merdes


---------------

n°1965551
skeye
Posté le 12-02-2010 à 16:29:54  profilanswer
 

theredled a écrit :

Sinon ya

Code :
  1. static public function removeAccents($str)
  2.     {
  3.         return utf8_encode(strtr(utf8_decode($str),
  4.                                  utf8_decode("ŠŒŽšœžŸ¥µÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿ" ),
  5.                                  "SOZsozYYuAAAAAAACEEEEIIIIDNOOOOOOUUUUYsaaaaaaaceeeeiiiionoooooouuuuyy" ));    
  6.     }


(pour de l'UTF-8, dans un script encodé UTF-8)
(à adapter si t'as vraiment besoin de caractères non-Latin-1 [:dawao])
(d'ailleurs les caractères listés non-Latin-1 n'ont rien à faire là a priori [:klemton])
 
Et si tu bosses en Latin-1 :

Code :
  1. static public function removeAccents($str)
  2.     {
  3.         return strtr($str,
  4.             "ŠŒŽšœžŸ¥µÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿ" ),
  5.             "SOZsozYYuAAAAAAACEEEEIIIIDNOOOOOOUUUUYsaaaaaaaceeeeiiiionoooooouuuuyy" );    
  6.     }


 
C'est pas over-top tout ça, mais c'est simple et court.


 
Ouais, j'étais en train de me dire que quitte à faire un replace c'est aussi peu maintenable que l'autre mais ça va plus vite.[:petrus75]


---------------
Can't buy what I want because it's free -
n°1965552
flo850
moi je
Posté le 12-02-2010 à 16:31:07  profilanswer
 

et tu gère les trucs genre apostrophes et caractères exotiques ?
Ş par exemple

Message cité 1 fois
Message édité par flo850 le 12-02-2010 à 16:31:43

---------------

n°1965557
nraynaud
lol
Posté le 12-02-2010 à 16:43:37  profilanswer
 

theredled a écrit :

Sinon ya

Code :
  1. static public function removeAccents($str)
  2.     {
  3.         return utf8_encode(strtr(utf8_decode($str),
  4.                                  utf8_decode("ŠŒŽšœžŸ¥µÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿ" ),
  5.                                  "SOZsozYYuAAAAAAACEEEEIIIIDNOOOOOOUUUUYsaaaaaaaceeeeiiiionoooooouuuuyy" ));    
  6.     }


(pour de l'UTF-8, dans un script encodé UTF-8)
(à adapter si t'as vraiment besoin de caractères non-Latin-1 [:dawao])
(d'ailleurs les caractères listés non-Latin-1 n'ont rien à faire là a priori [:klemton])
 
Et si tu bosses en Latin-1 :

Code :
  1. static public function removeAccents($str)
  2.     {
  3.         return strtr($str,
  4.             "ŠŒŽšœžŸ¥µÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿ" ),
  5.             "SOZsozYYuAAAAAAACEEEEIIIIDNOOOOOOUUUUYsaaaaaaaceeeeiiiionoooooouuuuyy" );    
  6.     }


 
C'est pas over-top tout ça, mais c'est simple et court.


œ-> oe :o
d'autre part en allemand ä -> ae, ö->oe etc.
 
bref, c'est pas si simple les règles de dé-accentuation;


---------------
trainoo.com, c'est fini
n°1965567
skeye
Posté le 12-02-2010 à 16:49:27  profilanswer
 

flo850 a écrit :

et tu gère les trucs genre apostrophes et caractères exotiques ?  
Ş par exemple


 
non ça je m'en branle, les données à modifier viennent d'une autre appli dont je sais que les utilisateurs ne sauraient pas saisir ça :D


---------------
Can't buy what I want because it's free -
n°1965568
theredled
● REC
Posté le 12-02-2010 à 16:50:08  profilanswer
 

nraynaud a écrit :


œ-> oe :o
d'autre part en allemand ä -> ae, ö->oe etc.

 

bref, c'est pas si simple les règles de dé-accentuation;


Oui, et le esset c'est "ss", mais de toute façon c'est pas du Latin-1 :o

 

C'est vrai pour le œ, mais c'est quand même super rare, et surtout quand on enlève les accents c'est souvent pour nommer des fichiers ou des urls, donc ce genre de cas limite ne gène pas trop en général.


Message édité par theredled le 12-02-2010 à 16:51:01

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1965577
skeye
Posté le 12-02-2010 à 17:08:50  profilanswer
 

Bon, au final, pour avoir quelque chose de lisible/maintenable je vais plutôt me retrouver avec un truc de ce genre :
 

Code :
  1. $table = array( 'é'=>'e',
  2.             'Š'=>'S', 'š'=>'s', 'Đ'=>'Dj', 'đ'=>'dj', 'Ž'=>'Z', 'ž'=>'z', 'Č'=>'C', 'č'=>'c', 'Ć'=>'C', 'ć'=>'c',
  3.             'À'=>'A', 'Á'=>'A', 'Â'=>'A', 'Ã'=>'A', 'Ä'=>'A', 'Å'=>'A', 'Æ'=>'A', 'Ç'=>'C', 'È'=>'E', 'É'=>'E',
  4.             'Ê'=>'E', 'Ë'=>'E', 'Ì'=>'I', 'Í'=>'I', 'Î'=>'I', 'Ï'=>'I', 'Ñ'=>'N', 'Ò'=>'O', 'Ó'=>'O', 'Ô'=>'O',
  5.             'Õ'=>'O', 'Ö'=>'O', 'Ø'=>'O', 'Ù'=>'U', 'Ú'=>'U', 'Û'=>'U', 'Ü'=>'U', 'Ý'=>'Y', 'Þ'=>'B', 'ß'=>'Ss',
  6.             'à'=>'a', 'á'=>'a', 'â'=>'a', 'ã'=>'a', 'ä'=>'a', 'å'=>'a', 'æ'=>'a', 'ç'=>'c', 'è'=>'e', 'é'=>'e',
  7.             'ê'=>'e', 'ë'=>'e', 'ì'=>'i', 'í'=>'i', 'î'=>'i', 'ï'=>'i', 'ð'=>'o', 'ñ'=>'n', 'ò'=>'o', 'ó'=>'o',
  8.             'ô'=>'o', 'õ'=>'o', 'ö'=>'o', 'ø'=>'o', 'ù'=>'u', 'ú'=>'u', 'û'=>'u', 'ý'=>'y', 'ý'=>'y', 'þ'=>'b',
  9.             'ÿ'=>'y', 'Ŕ'=>'R', 'ŕ'=>'r'
  10.        );
  11.  
  12.        $entree = array_keys($table);
  13.  
  14.        $sortie = array();
  15.        foreach($entree as $key=>$char){
  16.            $entree[$key] = utf8_decode($char);
  17.            $sortie[$key] = $table[$char];
  18.        }
  19.  
  20.        $tmp = str_replace($entree, $sortie, $tmp);


---------------
Can't buy what I want because it's free -
n°1965580
0x90
Posté le 12-02-2010 à 17:14:00  profilanswer
 

skeye a écrit :

Bon, au final, pour avoir quelque chose de lisible/maintenable je vais plutôt me retrouver avec un truc de ce genre :
 

Code :
  1. $table = array( 'é'=>'e',
  2.             'Š'=>'S', 'š'=>'s', 'Đ'=>'Dj', 'đ'=>'dj', 'Ž'=>'Z', 'ž'=>'z', 'Č'=>'C', 'č'=>'c', 'Ć'=>'C', 'ć'=>'c',
  3.             'À'=>'A', 'Á'=>'A', 'Â'=>'A', 'Ã'=>'A', 'Ä'=>'A', 'Å'=>'A', 'Æ'=>'A', 'Ç'=>'C', 'È'=>'E', 'É'=>'E',
  4.             'Ê'=>'E', 'Ë'=>'E', 'Ì'=>'I', 'Í'=>'I', 'Î'=>'I', 'Ï'=>'I', 'Ñ'=>'N', 'Ò'=>'O', 'Ó'=>'O', 'Ô'=>'O',
  5.             'Õ'=>'O', 'Ö'=>'O', 'Ø'=>'O', 'Ù'=>'U', 'Ú'=>'U', 'Û'=>'U', 'Ü'=>'U', 'Ý'=>'Y', 'Þ'=>'B', 'ß'=>'Ss',
  6.             'à'=>'a', 'á'=>'a', 'â'=>'a', 'ã'=>'a', 'ä'=>'a', 'å'=>'a', 'æ'=>'a', 'ç'=>'c', 'è'=>'e', 'é'=>'e',
  7.             'ê'=>'e', 'ë'=>'e', 'ì'=>'i', 'í'=>'i', 'î'=>'i', 'ï'=>'i', 'ð'=>'o', 'ñ'=>'n', 'ò'=>'o', 'ó'=>'o',
  8.             'ô'=>'o', 'õ'=>'o', 'ö'=>'o', 'ø'=>'o', 'ù'=>'u', 'ú'=>'u', 'û'=>'u', 'ý'=>'y', 'ý'=>'y', 'þ'=>'b',
  9.             'ÿ'=>'y', 'Ŕ'=>'R', 'ŕ'=>'r'
  10.        );
  11.  
  12.        $entree = array_keys($table);
  13.  
  14.        $sortie = array();
  15.        foreach($entree as $key=>$char){
  16.            $entree[$key] = utf8_decode($char);
  17.            $sortie[$key] = $table[$char];
  18.        }
  19.  
  20.        $tmp = str_replace($entree, $sortie, $tmp);



 
Sinon t'as http://php.net/manual/en/class.normalizer.php avec la NFKD ça sépare la quasi totalité des accents de leur lettre associée (y'a des trous pour les langues norvégiennes et le s allemand bizarres entre autres), ensuite tu convertit en ascii en mode ignore et il reste que les lettres sans les accents.


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1965588
FlorentG
Posté le 12-02-2010 à 18:19:30  profilanswer
 

skeye a écrit :

Bon, au final, pour avoir quelque chose de lisible/maintenable je vais plutôt me retrouver avec un truc de ce genre [...]


Problème, un caractère comme "è" peut être codé soit sous "è", soit sous la combinaison "` suivit de e" [:sadnoir] Vive l'unicode

n°1965589
0x90
Posté le 12-02-2010 à 18:21:12  profilanswer
 

FlorentG a écrit :


Problème, un caractère comme "è" peut être codé soit sous "è", soit sous la combinaison "` suivit de e" [:sadnoir] Vive l'unicode


 
Ce que résouds la NFKD :p


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1965590
skeye
Posté le 12-02-2010 à 18:25:42  profilanswer
 

0x90 a écrit :


 
Sinon t'as http://php.net/manual/en/class.normalizer.php avec la NFKD ça sépare la quasi totalité des accents de leur lettre associée (y'a des trous pour les langues norvégiennes et le s allemand bizarres entre autres), ensuite tu convertit en ascii en mode ignore et il reste que les lettres sans les accents.


 
ah, intéressant ça!


---------------
Can't buy what I want because it's free -
n°1965982
FlorentG
Posté le 15-02-2010 à 10:31:54  profilanswer
 

0x90 a écrit :

Ce que résouds la NFKD :p


[:vapeur_cochonne]

n°1969341
Funky Max
And then, I woke up.
Posté le 25-02-2010 à 16:52:08  profilanswer
 

Yo, c'est possible de contrôler le type d'un fichier avant un upload ?  
Avec le type MIME ouaip, avec l'extension aussi, mais dans les 2 cas ça ne n'empêche pas un fichier *.toto renommé en *.png d'être uploadé.
 
J'ai rien trouve de concluant, tous les trucs que j'ai trouvé n'empêchait pas l'upload d'un fichier renommé (le type mime détecte le type après renommage :p1cable: )
 
Merci :o

n°1969345
skeye
Posté le 25-02-2010 à 16:57:56  profilanswer
 

Funky Max a écrit :

Yo, c'est possible de contrôler le type d'un fichier avant un upload ?


avant l'upload le fichier n'est pas sur le serveur, le php s'exécute sur le serveur.

Message cité 1 fois
Message édité par skeye le 25-02-2010 à 17:03:19

---------------
Can't buy what I want because it's free -
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  28  29  30  ..  66  67  68  69  70  71

Aller à :
Ajouter une réponse
 

Sujets relatifs
Problème pour une mise en page sous forme de tableauAfficher sur une page web directement le resultat d'une autre page web
[PHP] Fonction include plus rapide qu'un bout de code dans la page ?Ouvrir un fichier HTML en fin de page
[Résolu] Expirer la cache au niveau de la pageexecuter une page php sans rien afficher
inserer dans ma page wikiControler le changement de page
Certificat SSL a valider pour chaque élément de pageinstallé un mdp sur une page web avec Namo
Plus de sujets relatifs à : blabla@php | faq et bonnes pratiques page 1


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)