|
|
|
#1 |
|
Messages: n/a
Hébergeur: |
Bonjour à tous !
Voilà, j'ai un petit probleme avec preg_match : En fait, je m'en sert pour verifier qu'une chaine est dans une autre, et dans le cas qui me pose probleme, je cherche la chaine contenu dans $_SESSION['profil'] dans la chaine $infos_vue['profils_autorises']. voici mon test : if (preg_match($_SESSION['profil'], $infos_vue['profils_autorises']) === false) { return false; } $_SESSION['profil'] contient 'RPC_RT' et $infos_vue['profils_autorises'] contient 'gqsd' cette méthode à toujours bien marché jusqu'ici, mais dans ce cas, je me retrouve avec un beau : Warning: preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslash in D:\[...]\fonctions.php on line 817 j'ai bien essayé de lire la doc de preg_match, mais je doit être un gros boulet, car ça ne m'a pas vraiment avancé... Je vous remerci d'avance pour votre aide ^^ |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
Thief13 wrote:
> $_SESSION['profil'] contient 'RPC_RT' et > $infos_vue['profils_autorises'] contient 'gqsd' > Warning: preg_match() [function.preg-match]: Delimiter must not be > alphanumeric or backslash in D:\[...]\fonctions.php on line 817 $_SESSION['profil'] est censé être un pattern, or cette variable ne contient pas les délimiteurs autorisés. tu devrais donc utiliser '/'.$_SESSION['profil'].'/' ou utiliser autre chose que preg_match(), par exemple strpos() -- Discussions et débats sur l'actualité: http://www.sujets-d-actu.eu Réseau IRC Francophone: http://www.crazy-irc.net |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
Bon, j'ai toujours pas compris pourquoi ça ne marche pas, mais en
désepoire de cause, je me suis vraiment replongé dans la doc, et j'ai trouvé ça : "N'utilisez pas preg_match() si vous voulez uniquement savoir si une chaine est contenue dans une autre. Utilisez dans ce cas les fonctions strpos() ou strstr(), qui sont beaucoup plus rapides." Et oui, boulet inside XD Donc, bon, je vais essayer de voir avec strstr() Par contre, plusieurs choses : - Si quelqu'un pouvais quand même m'expliquer ou je me plantais, ça me permettrait de mieux comprendre, merci d'avance pour son aide - J'ai à coté de moi un collegue qui m'affirme que strpos() peut chercher une chaine de caractere dans une autre chaine, cepandant, la doc a l'air assé claire : "strpos — Trouve la position d'un caractère dans une chaine" Qu'en est il ? strpos serait il plus indiqué que strstr dans mon cas ? peut il vraiment chercher plus qu'un caractere ? Merci d'avance ! |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
Thief13 wrote:
> $_SESSION['profil'] contient 'RPC_RT' et > $infos_vue['profils_autorises'] contient 'gqsd' > Warning: preg_match() [function.preg-match]: Delimiter must not be > alphanumeric or backslash in D:\[...]\fonctions.php on line 817 $_SESSION['profil'] est censé être un pattern, or cette variable ne contient pas les délimiteurs autorisés. tu devrais donc utiliser '/'.$_SESSION['profil'].'/' ou utiliser autre chose que preg_match(), par exemple strpos() -- Discussions et débats sur l'actualité: http://www.sujets-d-actu.eu Réseau IRC Francophone: http://www.crazy-irc.net |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
> tu devrais donc utiliser '/'.$_SESSION['profil'].'/' ou utiliser autre
> chose que preg_match(), par exemple strpos() > Super, merci ! |
|
|
|
#6 |
|
Messages: n/a
Hébergeur: |
Thief13 wrote:
> "strpos — Trouve la position d'un caractère dans une chaine" Extrait de la doc: Contrairement à la fonction strrpos() avant PHP 5, celle-ci peut prendre une chaîne de caractères complète comme paramètre needle et cette chaîne sera utilisée en totalité. -- Discussions et débats sur l'actualité: http://www.sujets-d-actu.eu Réseau IRC Francophone: http://www.crazy-irc.net |
|
|
|
#7 |
|
Messages: n/a
Hébergeur: |
On 2 août, 11:39, Thief13 <Thie...@nospam.com> wrote:
> Bon, j'ai toujours pas compris pourquoi ça ne marche pas, mais en > désepoire de cause, je me suis vraiment replongé dans la doc, et j'ai > trouvé ça : > > "N'utilisez pas preg_match() si vous voulez uniquement savoir si une > chaine est contenue dans une autre. Utilisez dans ce cas les fonctions > strpos() ou strstr(), qui sont beaucoup plus rapides." > > Et oui, boulet inside XD > > Donc, bon, je vais essayer de voir avec strstr() > > Par contre, plusieurs choses : > > - Si quelqu'un pouvais quand même m'expliquer ou je me plantais, ça me > permettrait de mieux comprendre, merci d'avance pour son aide > > - J'ai à coté de moi un collegue qui m'affirme que strpos() peut > chercher une chaine de caractere dans une autre chaine, cepandant, la > doc a l'air assé claire : > > "strpos - Trouve la position d'un caractère dans une chaine" > > Qu'en est il ? strpos serait il plus indiqué que strstr dans mon cas ? > peut il vraiment chercher plus qu'un caractere ? > > Merci d'avance ! Strpos() retourne la position d'UN caractere, pas d'une chaine. Dans ton cas, strstr() est ton amie. |
|
|
|
#8 |
|
Messages: n/a
Hébergeur: |
> - J'ai à coté de moi un collegue qui m'affirme que strpos() peut
> chercher une chaine de caractere dans une autre chaine, cepandant, la > doc a l'air assé claire : > > "strpos - Trouve la position d'un caractère dans une chaine" Oulah, lisez (toi et ton collegue) MIEUX la doc. "strpos - Trouve la position d'UN CARACTERE dans une chaine" strstr() va, elle, trouver une chaine dans une autre > > Qu'en est il ? strpos serait il plus indiqué que strstr dans mon cas ? > peut il vraiment chercher plus qu'un caractere ? > > Merci d'avance ! de rien |
|
|
|
#9 |
|
Messages: n/a
Hébergeur: |
Thief13 wrote:
> "strpos — Trouve la position d'un caractère dans une chaine" Extrait de la doc: Contrairement à la fonction strrpos() avant PHP 5, celle-ci peut prendre une chaîne de caractères complète comme paramètre needle et cette chaîne sera utilisée en totalité. -- Discussions et débats sur l'actualité: http://www.sujets-d-actu.eu Réseau IRC Francophone: http://www.crazy-irc.net |
|
|
|
#10 |
|
Messages: n/a
Hébergeur: |
On 2 août, 11:39, Thief13 <Thie...@nospam.com> wrote:
> Bon, j'ai toujours pas compris pourquoi ça ne marche pas, mais en > désepoire de cause, je me suis vraiment replongé dans la doc, et j'ai > trouvé ça : > > "N'utilisez pas preg_match() si vous voulez uniquement savoir si une > chaine est contenue dans une autre. Utilisez dans ce cas les fonctions > strpos() ou strstr(), qui sont beaucoup plus rapides." > > Et oui, boulet inside XD > > Donc, bon, je vais essayer de voir avec strstr() > > Par contre, plusieurs choses : > > - Si quelqu'un pouvais quand même m'expliquer ou je me plantais, ça me > permettrait de mieux comprendre, merci d'avance pour son aide > > - J'ai à coté de moi un collegue qui m'affirme que strpos() peut > chercher une chaine de caractere dans une autre chaine, cepandant, la > doc a l'air assé claire : > > "strpos - Trouve la position d'un caractère dans une chaine" > > Qu'en est il ? strpos serait il plus indiqué que strstr dans mon cas ? > peut il vraiment chercher plus qu'un caractere ? > > Merci d'avance ! Strpos() retourne la position d'UN caractere, pas d'une chaine. Dans ton cas, strstr() est ton amie. |
|
|
|
#11 |
|
Messages: n/a
Hébergeur: |
> - J'ai à coté de moi un collegue qui m'affirme que strpos() peut
> chercher une chaine de caractere dans une autre chaine, cepandant, la > doc a l'air assé claire : > > "strpos - Trouve la position d'un caractère dans une chaine" Oulah, lisez (toi et ton collegue) MIEUX la doc. "strpos - Trouve la position d'UN CARACTERE dans une chaine" strstr() va, elle, trouver une chaine dans une autre > > Qu'en est il ? strpos serait il plus indiqué que strstr dans mon cas ? > peut il vraiment chercher plus qu'un caractere ? > > Merci d'avance ! de rien |
|
|
|
#12 |
|
Messages: n/a
Hébergeur: |
bmayer a écrit :
> On 2 août, 11:39, Thief13 <Thie...@nospam.com> wrote: >> Qu'en est il ? strpos serait il plus indiqué que strstr dans mon cas ? >> peut il vraiment chercher plus qu'un caractere ? >> > > Strpos() retourne la position d'UN caractere, pas d'une chaine. > Dans ton cas, strstr() est ton amie. et dans la doc pour strstr(): Note: If you only want to determine if a particular needle occurs within haystack, use the faster and less memory intensive function strpos() instead. Quant à savoir si strpos permet de chercher une chaîne, en cas de doute, il est plus rapide de faire un test en php que de suivre un fil de discussion ;-) echo("strpos('pilepoilpaille','pa') -> ".strpos('pilepoilpaille','pa')); |
|
|
|
#13 |
|
Messages: n/a
Hébergeur: |
bmayer a écrit :
> On 2 août, 11:39, Thief13 <Thie...@nospam.com> wrote: >> Qu'en est il ? strpos serait il plus indiqué que strstr dans mon cas ? >> peut il vraiment chercher plus qu'un caractere ? >> > > Strpos() retourne la position d'UN caractere, pas d'une chaine. > Dans ton cas, strstr() est ton amie. et dans la doc pour strstr(): Note: If you only want to determine if a particular needle occurs within haystack, use the faster and less memory intensive function strpos() instead. Quant à savoir si strpos permet de chercher une chaîne, en cas de doute, il est plus rapide de faire un test en php que de suivre un fil de discussion ;-) echo("strpos('pilepoilpaille','pa') -> ".strpos('pilepoilpaille','pa')); |
|
|
|
#14 |
|
Messages: n/a
Hébergeur: |
bmayer a écrit :
> Oulah, lisez (toi et ton collegue) MIEUX la doc. > "strpos - Trouve la position d'UN CARACTERE dans une chaine" > strstr() va, elle, trouver une chaine dans une autre Bin, c'est exactement ce que je me disait, mais en fait, non, ça marche avec une chaine, et super bien d'ailleur ^^ j'ai eu beau tester dans tout les sens, ça marche |
|
|
|
#15 |
|
Messages: n/a
Hébergeur: |
CrazyCat a écrit :
> Extrait de la doc: > Contrairement à la fonction strrpos() avant PHP 5, celle-ci peut prendre > une chaîne de caractères complète comme paramètre needle et cette chaîne > sera utilisée en totalité. > Ok, donc là, si ça marche avec strpos, c'est parce qu'on est en php5, mais si on fait tourner le script sur du 4, ça va foirer... |
|
|
|
#16 |
|
Messages: n/a
Hébergeur: |
Bonjour a tous !
> > "strpos - Trouve la position d'un caractère dans une chaine" > > Extrait de la doc: > Contrairement à la fonction strrpos() avant PHP 5, celle-ci peut prendre > une chaîne de caractères complète comme paramètre needle et cette chaîne > sera utilisée en totalité. Mouais Et le jour ou ton aplli tourne sur une config avec du PHP + ancien ? > Discussions et débats sur l'actualité:http://www.sujets-d-actu.eu > Réseau IRC Francophone:http://www.crazy-irc.net |
|
|
|
#17 |
|
Messages: n/a
Hébergeur: |
Bonjour a tous !
> > "strpos - Trouve la position d'un caractère dans une chaine" > > Extrait de la doc: > Contrairement à la fonction strrpos() avant PHP 5, celle-ci peut prendre > une chaîne de caractères complète comme paramètre needle et cette chaîne > sera utilisée en totalité. Mouais Et le jour ou ton aplli tourne sur une config avec du PHP + ancien ? > Discussions et débats sur l'actualité:http://www.sujets-d-actu.eu > Réseau IRC Francophone:http://www.crazy-irc.net |
|
|
|
#18 |
|
Messages: n/a
Hébergeur: |
bmayer a écrit :
> Mouais > Et le jour ou ton aplli tourne sur une config avec du PHP + ancien ? Oui, c'est logique : par exemple, un jour, si je dev une appli en VB.net 2006, apres je sais pas pourquoi, je la compile avec VB 5 ! et dans cette optique, il faut que je dev en prenant ça en compte ? Nan, franchement, si on dev en php 5, on fait tourner sur un serveur en php 5, c'est tout. On va pas non plus n'utiliser que les fonction php 3 au cas ou, non plus ? XD |
|
|
|
#19 |
|
Messages: n/a
Hébergeur: |
bmayer wrote:
>> Contrairement à la fonction strrpos() avant PHP 5, celle-ci peut prendre >> une chaîne de caractères complète comme paramètre needle et cette chaîne >> sera utilisée en totalité. > Et le jour ou ton aplli tourne sur une config avec du PHP + ancien ? Lis bien: strpos() *accepte* les chaines de caractères *mais pas* strRpos avant PHP5 Conclusion: strpos() fonctionne partout (ou presque) avec des chaines de caractères, strrpos() non. -- Discussions et débats sur l'actualité: http://www.sujets-d-actu.eu Réseau IRC Francophone: http://www.crazy-irc.net |
|
|
|
#20 |
|
Messages: n/a
Hébergeur: |
bmayer wrote:
>> Contrairement à la fonction strrpos() avant PHP 5, celle-ci peut prendre >> une chaîne de caractères complète comme paramètre needle et cette chaîne >> sera utilisée en totalité. > Et le jour ou ton aplli tourne sur une config avec du PHP + ancien ? Lis bien: strpos() *accepte* les chaines de caractères *mais pas* strRpos avant PHP5 Conclusion: strpos() fonctionne partout (ou presque) avec des chaines de caractères, strrpos() non. -- Discussions et débats sur l'actualité: http://www.sujets-d-actu.eu Réseau IRC Francophone: http://www.crazy-irc.net |
|
|
|
#21 |
|
Messages: n/a
Hébergeur: |
On 3 août, 22:12, Thief13 <Thie...@nospam.com> wrote:
> bmayer a écrit : > > > Mouais > > Et le jour ou ton aplli tourne sur une config avec du PHP + ancien ? > > Oui, c'est logique : par exemple, un jour, si je dev une appli en VB.net > 2006, apres je sais pas pourquoi, je la compile avec VB 5 ! et dans > cette optique, il faut que je dev en prenant ça en compte ? > > Nan, franchement, si on dev en php 5, on fait tourner sur un serveur en > php 5, c'est tout. On va pas non plus n'utiliser que les fonction php 3 > au cas ou, non plus ? XD Bonjour a tous. Si tu maitrises ta chaine de production de bout en bout, qu'en est-il demain ? Par exemple, php + iis + dll, donc, fonctionne dans le monde Microsoft. La boite pour laquelle le travail fut fait change de main, le systeme est externalisé ... sur un vrai systeme d'Homme, Z-os dans des partitions Linux ;o] Tout a du etre refait. Ce que tu developpes aujourd'hui tourne sur un serveur que tu maitrises. Demain ton client decide que cela ne lui convient plus, que cela tourne sur une autre config, les emmerdes commencent. Plus le code est standard, moins on se fait chier, plus tard. Reste quand meme pas mal de config php4, particulierement dans les plus grosses ... |
|
|
|
#22 |
|
Messages: n/a
Hébergeur: |
On 3 août, 22:12, Thief13 <Thie...@nospam.com> wrote:
> bmayer a écrit : > > > Mouais > > Et le jour ou ton aplli tourne sur une config avec du PHP + ancien ? > > Oui, c'est logique : par exemple, un jour, si je dev une appli en VB.net > 2006, apres je sais pas pourquoi, je la compile avec VB 5 ! et dans > cette optique, il faut que je dev en prenant ça en compte ? > > Nan, franchement, si on dev en php 5, on fait tourner sur un serveur en > php 5, c'est tout. On va pas non plus n'utiliser que les fonction php 3 > au cas ou, non plus ? XD Bonjour a tous. Si tu maitrises ta chaine de production de bout en bout, qu'en est-il demain ? Par exemple, php + iis + dll, donc, fonctionne dans le monde Microsoft. La boite pour laquelle le travail fut fait change de main, le systeme est externalisé ... sur un vrai systeme d'Homme, Z-os dans des partitions Linux ;o] Tout a du etre refait. Ce que tu developpes aujourd'hui tourne sur un serveur que tu maitrises. Demain ton client decide que cela ne lui convient plus, que cela tourne sur une autre config, les emmerdes commencent. Plus le code est standard, moins on se fait chier, plus tard. Reste quand meme pas mal de config php4, particulierement dans les plus grosses ... |
|
|
|
#23 |
|
Messages: n/a
Hébergeur: |
bmayer a écrit :
> Plus le code est standard, moins on se fait chier, plus tard. On peut faire ça, mais on peut aussi faire une documentation sur la methode d'installation et les prérequis techniques... Ce qui est quand meme plus propre. mais je sais que ce genre de chose passe au dessus de la tete de la plupart des devellopeur, car pour être passé deriere beaucoup de monde, je me rend compte que quasiment personne ne documente, de commente ETC. Pour ma part, chaque fonction est commenté ET documenté de manière détaillé, chaque programme que je fait dispose à la fois d'une documentation technique, une documentation d'utilisation, et une documentation d'installation pas a pas. Bizarement, j'ai beaucoup moin de probleme que tout ces devellopeur que me font la leçon (car tu n'est pas le seul) sur "Houlala, attention, ta fonction elle va marcher diféramment sous PHP3, tu te rend compte, si jamais..." Avec des si, on coupe du boi, moi, je documente, à chaqun son choi. |
|
|
|
#24 |
|
Messages: n/a
Hébergeur: |
bmayer a écrit :
> Si tu maitrises ta chaine de production de bout en bout, qu'en est-il > demain ? <snip> > > Reste quand meme pas mal de config php4, particulierement dans les > plus grosses ... Sur le site php.net il est annoncé la fin de php4. Donc pour les applis en php4, il est temps de songer à les adapter à php5... PHP 4 end of life announcement [13-Jul-2007] Today it is exactly three years ago since PHP 5 has been released. In those three years it has seen many improvements over PHP 4. PHP 5 is fast, stable & production-ready and as PHP 6 is on the way, PHP 4 will be discontinued. The PHP development team hereby announces that support for PHP 4 will continue until the end of this year only. After 2007-12-31 there will be no more releases of PHP 4.4. We will continue to make critical security fixes available on a case-by-case basis until 2008-08-08. Please use the rest of this year to make your application suitable to run on PHP 5. Traduction rapide pour ceux qui ne lisent pas l'anglais: Plus de mises à jour de php4 à partir de 2008 sauf cas exceptionnel jusqu'en aout 2008, ensuite php4 rejoint phpfi... |
|
|
|
#25 |
|
Messages: n/a
Hébergeur: |
bmayer a écrit :
> Si tu maitrises ta chaine de production de bout en bout, qu'en est-il > demain ? <snip> > > Reste quand meme pas mal de config php4, particulierement dans les > plus grosses ... Sur le site php.net il est annoncé la fin de php4. Donc pour les applis en php4, il est temps de songer à les adapter à php5... PHP 4 end of life announcement [13-Jul-2007] Today it is exactly three years ago since PHP 5 has been released. In those three years it has seen many improvements over PHP 4. PHP 5 is fast, stable & production-ready and as PHP 6 is on the way, PHP 4 will be discontinued. The PHP development team hereby announces that support for PHP 4 will continue until the end of this year only. After 2007-12-31 there will be no more releases of PHP 4.4. We will continue to make critical security fixes available on a case-by-case basis until 2008-08-08. Please use the rest of this year to make your application suitable to run on PHP 5. Traduction rapide pour ceux qui ne lisent pas l'anglais: Plus de mises à jour de php4 à partir de 2008 sauf cas exceptionnel jusqu'en aout 2008, ensuite php4 rejoint phpfi... |
|
![]() |
| Outils de la discussion | |
|
|