[php] Calcul sur url
damienr
Messages postés
11
Date d'inscription
Statut
Membre
Dernière intervention
-
damienr Messages postés 11 Date d'inscription Statut Membre Dernière intervention -
damienr Messages postés 11 Date d'inscription Statut Membre Dernière intervention -
Bonjour tout le monde,
Je suis entrain de créer quelques pages en php (par commodité, mes connaissances en php sont très limitées).
Je me heurte à un problème:
Dans un dossier, j'ai beaucoup de pages qui s'apellent "page001.php", "page002.php" etc ...
Je cherche à faire une requête php pour qu'un bouton affiche sur chaque page un lien vers la suivante, et ce en effectuant le calcul "page001" +1 = page002.
J'ai déjà ce qu'il faut pour obtenir le nom de la page courante (en fin de message).
J'imagine que maintenant je dois décomposer mon nom de page en deux variables, une texte et l'autre numérique pour pouvoir effectuer le calcul 001 + 1 = 002 et pour enfin avoir mon lien vers ma page 2.
Le code suivant m'affiche mon nom de page courante, sans l'adresse complète, il faut maintenant que je le modifie et que je l'inclue dans un lien.
Si quelqu'un a déjà rencontré le même problème, je suis à l'écoute des éventuelles solutions.
à bientôt !
Damien
Je suis entrain de créer quelques pages en php (par commodité, mes connaissances en php sont très limitées).
Je me heurte à un problème:
Dans un dossier, j'ai beaucoup de pages qui s'apellent "page001.php", "page002.php" etc ...
Je cherche à faire une requête php pour qu'un bouton affiche sur chaque page un lien vers la suivante, et ce en effectuant le calcul "page001" +1 = page002.
J'ai déjà ce qu'il faut pour obtenir le nom de la page courante (en fin de message).
J'imagine que maintenant je dois décomposer mon nom de page en deux variables, une texte et l'autre numérique pour pouvoir effectuer le calcul 001 + 1 = 002 et pour enfin avoir mon lien vers ma page 2.
Le code suivant m'affiche mon nom de page courante, sans l'adresse complète, il faut maintenant que je le modifie et que je l'inclue dans un lien.
$path = $_SERVER['PHP_SELF']; // $path = /home/httpd/html/index.php $file = basename ($path); echo"$file"; // index.php
Si quelqu'un a déjà rencontré le même problème, je suis à l'écoute des éventuelles solutions.
à bientôt !
Damien
A voir également:
- [php] Calcul sur url
- Url - Guide
- Calcul moyenne excel - Guide
- Calcul km marche à pied gratuit - Télécharger - Sport
- Easy php - Télécharger - Divers Web & Internet
- Comment changer url iptv - Forum Créer un site
3 réponses
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"); ?>
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 ?>
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 !
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é ?
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 .....)
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"
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 !