[php] Calcul sur url
Fermé
damienr
Messages postés
11
Date d'inscription
vendredi 27 juillet 2012
Statut
Membre
Dernière intervention
2 août 2012
-
27 juil. 2012 à 20:43
damienr Messages postés 11 Date d'inscription vendredi 27 juillet 2012 Statut Membre Dernière intervention 2 août 2012 - 2 août 2012 à 17:00
damienr Messages postés 11 Date d'inscription vendredi 27 juillet 2012 Statut Membre Dernière intervention 2 août 2012 - 2 août 2012 à 17:00
A voir également:
- [php] Calcul sur url
- Lien url - Guide
- Url blacklist - Forum Virus
- Calcul moyenne excel - Guide
- Url masquée pour votre sécurité - Forum TV & Vidéo
- Verifier url - Guide
3 réponses
gilbert1995
Messages postés
414
Date d'inscription
samedi 12 septembre 2009
Statut
Membre
Dernière intervention
30 mai 2013
29
31 juil. 2012 à 06:38
31 juil. 2012 à 06:38
La fonction ci dessous prend en charge tout les 0 ex:01.php,001.php0001.php etc... Elle prend en charge n'importe quel extention aussi.
<?php function page($act){ $nom = substr(basename($_SERVER['PHP_SELF']),0, (strlen(basename($_SERVER['PHP_SELF'])) - (strlen(preg_replace('#[a-z./]#i', '', $_SERVER['PHP_SELF'], -1)) + 4))); $nb = strlen(preg_replace('#[a-z./]#i', '', $_SERVER['PHP_SELF'], -1)); if($act=="next") { $n=preg_replace('#[a-z./]#i', '', $_SERVER['PHP_SELF'], -1)+1; return $nom . str_pad($n, $nb, '0', STR_PAD_LEFT) . substr(basename($_SERVER['PHP_SELF']), strrpos(basename($_SERVER['PHP_SELF']), '.')); } else { $n=preg_replace('#[a-z./]#i', '', $_SERVER['PHP_SELF'], -1)-1; return $nom . str_pad($n, $nb, '0', STR_PAD_LEFT) . substr(basename($_SERVER['PHP_SELF']), strrpos(basename($_SERVER['PHP_SELF']), '.')); } } echo page("next"); echo page("prev"); ?>
gilbert1995
Messages postés
414
Date d'inscription
samedi 12 septembre 2009
Statut
Membre
Dernière intervention
30 mai 2013
29
28 juil. 2012 à 03:37
28 juil. 2012 à 03:37
exemple avec la page001.php
<?php function next(){$n=preg_replace('#[a-z./]#i', '', $_SERVER['PHP_SELF'], -1)+1;if($n<10){$n='00'.$n;}elseif($n<100){$n='0'.$n;}return $n.".php";} function prev(){$n=preg_replace('#[a-z./]#i', '', $_SERVER['PHP_SELF'], -1)-1;if($n<10){$n='00'.$n;}elseif($n<100){$n='0'.$n;}return $n.".php";} echo next(); // page002.php echo prev(); // page000.php ?>
gilbert1995
Messages postés
414
Date d'inscription
samedi 12 septembre 2009
Statut
Membre
Dernière intervention
30 mai 2013
29
29 juil. 2012 à 04:30
29 juil. 2012 à 04:30
Ca marche ?
damienr
Messages postés
11
Date d'inscription
vendredi 27 juillet 2012
Statut
Membre
Dernière intervention
2 août 2012
30 juil. 2012 à 16:07
30 juil. 2012 à 16:07
Salut Gilbert,
Merci beaucoup pour l'intérêt que tu as porté à mon problème.
Désolé pour le retard de la réponse, j'aurais dû préciser que je n'avais accès à internet que durant la semaine.
J'ai essayé ton code, mais finalement j'utilise un format comme ceci pour mes pages : "pay0001.php" etc, donc ton code ne marche plus avec une décimale de plus.
J'essaye de modifier cela seul pour que ça marche, et sinon je reposterai ici.
Encore une fois, merci de ton aide !
Merci beaucoup pour l'intérêt que tu as porté à mon problème.
Désolé pour le retard de la réponse, j'aurais dû préciser que je n'avais accès à internet que durant la semaine.
J'ai essayé ton code, mais finalement j'utilise un format comme ceci pour mes pages : "pay0001.php" etc, donc ton code ne marche plus avec une décimale de plus.
J'essaye de modifier cela seul pour que ça marche, et sinon je reposterai ici.
Encore une fois, merci de ton aide !
damienr
Messages postés
11
Date d'inscription
vendredi 27 juillet 2012
Statut
Membre
Dernière intervention
2 août 2012
30 juil. 2012 à 16:17
30 juil. 2012 à 16:17
Hum, je viens d'essayer ceci =>
Mais on me dit :
Fatal error: Cannot redeclare next() in C:\wamp\www\photos\apipil\pay\pay0001.php on line 92
... ai-je loupé ?
function next(){$n=preg_replace('#[a-z./]#i', '', $_SERVER['PHP_SELF'], -1)+1;if($n<10){$n='000'.$n;}elseif($n<100){$n='00'.$n;}return $n.".php";}
Mais on me dit :
Fatal error: Cannot redeclare next() in C:\wamp\www\photos\apipil\pay\pay0001.php on line 92
... ai-je loupé ?
gilbert1995
Messages postés
414
Date d'inscription
samedi 12 septembre 2009
Statut
Membre
Dernière intervention
30 mai 2013
29
30 juil. 2012 à 22:57
30 juil. 2012 à 22:57
change le nom de la fonction pour autre choses genre page_next() au lieu de next() ;)
damienr
Messages postés
11
Date d'inscription
vendredi 27 juillet 2012
Statut
Membre
Dernière intervention
2 août 2012
30 juil. 2012 à 23:28
30 juil. 2012 à 23:28
impecc' !!
Ca marche super, avec la modification que j'avais apporté.
Bon par contre j'ai eu un peu de mal à inclure le résultat dans mes liens donc j'ai fait un petit truc un eu moche visible en fin de message.
Par contre j'ai un dernier petit soucis. La formule me rapporte actuellement que le "0002.php" de la fin de l'url par exemple. J'aimerai qu'il me rapporte également la chaine de caractère qui est avant, pour que ça me donne par exemple "pay0002.php". Je ne eux pas inclure ce "pay" avant le code php dans mon lien car ce mot change pour chaque dossier de mon site web.
je bidouille deuis tout à l'heure, pour l'instant sans succès, si je trouve je vous tiens au courant !
encore une fois merci !
(je sais c'est pas beau .....)
Ca marche super, avec la modification que j'avais apporté.
Bon par contre j'ai eu un peu de mal à inclure le résultat dans mes liens donc j'ai fait un petit truc un eu moche visible en fin de message.
Par contre j'ai un dernier petit soucis. La formule me rapporte actuellement que le "0002.php" de la fin de l'url par exemple. J'aimerai qu'il me rapporte également la chaine de caractère qui est avant, pour que ça me donne par exemple "pay0002.php". Je ne eux pas inclure ce "pay" avant le code php dans mon lien car ce mot change pour chaque dossier de mon site web.
je bidouille deuis tout à l'heure, pour l'instant sans succès, si je trouve je vous tiens au courant !
encore une fois merci !
<?php function page_next(){$n=preg_replace('#[a-z./]#i', '', $_SERVER['PHP_SELF'], -1)+1;if($n<10){$n='000'.$n;}elseif($n<100){$n='00'.$n;}return $n.".php";} function page_prev(){$n=preg_replace('#[a-z./]#i', '', $_SERVER['PHP_SELF'], -1)-1;if($n<10){$n='000'.$n;}elseif($n<100){$n='00'.$n;}return $n.".php";} ?> <a href="pay<?php echo page_prev(); ?>"><img src="gauche.jpg" width="25" border="1" alt="" /></a> <a href="pay<?php echo page_next(); ?>"><img src="droite.jpg" width="25" border="1" alt="" /></a>
(je sais c'est pas beau .....)
damienr
Messages postés
11
Date d'inscription
vendredi 27 juillet 2012
Statut
Membre
Dernière intervention
2 août 2012
31 juil. 2012 à 16:20
31 juil. 2012 à 16:20
Merci beaucoup pour ton aide Gilbert, nous ne nous connaissons pas aussi j'apprécie particulièrement l'aide !
Cette formule paraît bien sympa mais pour autant elle ne marche toujours pas parfaitement, j'ai souvent un "1" qui se rajoute à la fin de la partie alphabétique du nom d'url, et remplace le dernière lettre du nom.
Par ex, si je suis sur la page cory00012.php, le lien suivant s'affiche "cor100013.php"
Quelque chose de bizarre se passe, car certaines url de trois lettres et 4 chiffres se calculent très bien alors que dans d'autres albumsle calcul va mal se faire, et donner par exemple comme résultat "pa10005.php" au lieu de "pay0005.php"
Cette formule paraît bien sympa mais pour autant elle ne marche toujours pas parfaitement, j'ai souvent un "1" qui se rajoute à la fin de la partie alphabétique du nom d'url, et remplace le dernière lettre du nom.
Par ex, si je suis sur la page cory00012.php, le lien suivant s'affiche "cor100013.php"
Quelque chose de bizarre se passe, car certaines url de trois lettres et 4 chiffres se calculent très bien alors que dans d'autres albumsle calcul va mal se faire, et donner par exemple comme résultat "pa10005.php" au lieu de "pay0005.php"
gilbert1995
Messages postés
414
Date d'inscription
samedi 12 septembre 2009
Statut
Membre
Dernière intervention
30 mai 2013
29
1 août 2012 à 02:49
1 août 2012 à 02:49
as-tu une liste de nom a tester plz
gilbert1995
Messages postés
414
Date d'inscription
samedi 12 septembre 2009
Statut
Membre
Dernière intervention
30 mai 2013
29
1 août 2012 à 02:51
1 août 2012 à 02:51
Pour moi lorsque je crée une page (pay00099.php) le résultat est pay00100.php pay00098.php
damienr
Messages postés
11
Date d'inscription
vendredi 27 juillet 2012
Statut
Membre
Dernière intervention
2 août 2012
1 août 2012 à 02:54
1 août 2012 à 02:54
Ouaip ! (j'étais justement entrain de m'arracher les cheveux à résoudre ce problème :)
ex de noms de pages au hasard :
cory0008
cory0009
cory00010
cory00011
cory00012
cory00013
pay0001
pay0002
pay0003
echino00015
echino00016
echino00017
echino00018
echino00019
echino00020
echino00021
opuntia0001
opuntia0002
opuntia0003
opuntia0004
opuntia00015
opuntia00016
opuntia00017
opuntia00018
opuntia00019
La chose à prendre en compte c'est que lors du passage de 9 à 10 les trois zéros restent (ce qui n'est finalement pas logique mais toutes mes pages sont comme ça ...)
merci encore !
ex de noms de pages au hasard :
cory0008
cory0009
cory00010
cory00011
cory00012
cory00013
pay0001
pay0002
pay0003
echino00015
echino00016
echino00017
echino00018
echino00019
echino00020
echino00021
opuntia0001
opuntia0002
opuntia0003
opuntia0004
opuntia00015
opuntia00016
opuntia00017
opuntia00018
opuntia00019
La chose à prendre en compte c'est que lors du passage de 9 à 10 les trois zéros restent (ce qui n'est finalement pas logique mais toutes mes pages sont comme ça ...)
merci encore !
damienr
Messages postés
11
Date d'inscription
vendredi 27 juillet 2012
Statut
Membre
Dernière intervention
2 août 2012
1 août 2012 à 02:56
1 août 2012 à 02:56
j'essaye de suite également avec pay000100
damienr
Messages postés
11
Date d'inscription
vendredi 27 juillet 2012
Statut
Membre
Dernière intervention
2 août 2012
1 août 2012 à 03:01
1 août 2012 à 03:01
avec pay000100 j'obtiens par exemple pay000099 et pay000101