Supprimer un contenu stocké dans une variable

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Supprimer un contenu stocké dans une variable

Re: Supprimer un contenu stocké dans une variable

par yoann38 » 15 avr. 2016, 18:21

Re,
Je pensé pas autant galérer avec une pagination franchement.
Je vous fait part de mon code en entier pour la pagination (surement plus clair )
//traitement pagination
		$nbre_annonces_par_page = 10;
		$nbre_pages_max_gauche_et_droite = 2;
		$last_page = ceil($nb / $nbre_annonces_par_page);
		if(isset($_GET['page']) && is_numeric($_GET['page'])){
		$page_num = $_GET['page'];
		} else {
		$page_num = 1;
		}
		if($page_num < 1){
		$page_num = 1;
		} else if($page_num > $last_page) {
		$page_num = $last_page;
		}
		$limit = 'LIMIT '.($page_num - 1) * $nbre_annonces_par_page. ',' . $nbre_annonces_par_page;
		
		$pagination = '';
		if($last_page != 1){
		if($page_num > 1){
		$previous = $page_num - 1;
		$pagination .= '<a href="sortie.php?page='.$previous.'" class="page" data-page="'.$previous.'" data-du="'.$du.'" data-au="'.$au.'"><i class="fa fa-angle-left"></i>
</a> &nbsp; &nbsp;';
		for($i = $page_num - $nbre_pages_max_gauche_et_droite; $i < $page_num; $i++){
		if($i > 0){
		$pagination .= '<a href="sortie.php?page='.$i.'" class="page" data-page="'.$i.'" data-du="'.$du.'" data-au="'.$au.'">'.$i.'</a> &nbsp;';
		}
		}
		}
		$pagination .= '<span class="active">'.$page_num.'</span>&nbsp;';
		for($i = $page_num+1; $i <= $last_page; $i++){
		$pagination .= '<a href="sortie.php?page='.$i.'" class="page" data-page="'.$i.'" data-du="'.$du.'" data-au="'.$au.'">'.$i.'</a> ';
		if($i >= $page_num + $nbre_pages_max_gauche_et_droite){
		break;
		}
		}
		if($page_num != $last_page){
		$next = $page_num + 1;
		$pagination .= '<a href="sortie.php?page='.$next.'" class="page" data-page="'.$next.'" data-du="'.$du.'" data-au="'.$au.'"><i class="fa fa-angle-right"></i>
</a> ';
		}
		}

		$sql .= " ORDER BY loisirs.id_loisirs DESC LIMIT ".intval(($page-1)*$parPage).", ".$parPage;

Les urls peuvent être:
http://monsite.fr/actu-de-la-ville-de-grenoble.html
http://monsite.fr/actu-de-la-region-rhone-alpes.html
....

Et coté code on a donc pour l'instant:
// Phase Test
		$url_en_cours = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
		$pattern = "#page-\d*\.html$#i ";
		$replacement = '${1}1,$3';
		$url_modifier = preg_replace($pattern, $replacement, $url_en_cours);
		//echo $url_modifier;

Re: Supprimer un contenu stocké dans une variable

par Ryle » 15 avr. 2016, 10:04

Avec la découverte des expressions régulières, c'est tout un nouveau monde qui va s'ouvrir à toi :)

Le plus simple à mon sens c'est d'utiliser preg_match pour tester si ton url contient un numéro de page (tu peux utiliser la même expression). Si oui, alors traitement, sinon rien à changer :)


Edit : tu peux même envisager d'utiliser preg_match pour récupérer le numéro de la page demandée avec les parenthèses capturantes autour du (\d*) et coller ça dans une variable $page. Et tu peux ensuite construire tes liens simplement à base de if/else
if ($page < 2) {
  $lienPrecedent = "grenoble.html";
  $lienSuivant = "grenoble-page-2.html";
}
else{
  $lienPrecedent = "grenoble-page-" . ($page - 1) . ".html";
  $lienSuivant = "grenoble-page-" . ($page + 1) . ".html"; // avec éventuellement un test pour savoir si la page+1 existe :)
}

Re: Supprimer un contenu stocké dans une variable

par yoann38 » 15 avr. 2016, 07:26

J'ai donc pour l'instant :
// Phase Test
	$url_en_cours = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
        $pattern = "#page-\d*\.html$#i ";
        $replacement = '${1}1,$3';
	$url_modifier = preg_replace($pattern, $replacement, $url_en_cours);
	echo $url_modifier;
et mon lien:
$pagination .= '<a href="'.$url_modifier.'page-'.$next.'.html" class="page" data-page="'.$next.'" data-du="'.$du.'" data-au="'.$au.'"><i class="fa fa-angle-right"></i>
</a> ';
Donc si l'url à déjà une page d'attribuer soit par exemple:
http://monsite.fr/actu-de-la-ville-de-g ... age-2.html
le lien pour la page 3 est correct


Cependant si on est sur la page 1 à savoir: ( sans -page-(0-9) )
http://monsite.fr/actu-de-la-ville-de-grenoble.html

Le lien est faux car il retourne:
http://monsite.fr/actu-de-la-ville-de-g ... age-2.html

Merci à vous

Re: Supprimer un contenu stocké dans une variable

par moogli » 14 avr. 2016, 21:47

salut,

regarde la doc de la preg_replace il y a des exemples http://php.net/preg_replace
<?php
$string = 'April 15, 2003';
$pattern = '/(\w+) (\d+), (\d+)/i';
$replacement = '${1}1,$3';
echo preg_replace($pattern, $replacement, $string);
?>
En remplacent le motif par celui indiqué par Ryle et la chaîne par ton url tu as auras déjà un belle exemple ;)


@+

Re: Supprimer un contenu stocké dans une variable

par yoann38 » 14 avr. 2016, 20:37

Heu....lol
Je n'arrive pas à commencé à écrire mon script là.... :/

Re: Supprimer un contenu stocké dans une variable

par Ryle » 14 avr. 2016, 17:56

Regarde du côté de preg_replace() du coup :)

...

Et pour l'expression, quelque chose du genre " #page-\d*\.html$#i "

Re: Supprimer un contenu stocké dans une variable

par yoann38 » 14 avr. 2016, 17:20

Alors en fait j'ai fait ca pour l'instant :
$url_en_cours = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$rest_url = substr($url_en_cours, 0, -12);  // retourne "abcde"
Si la page par exemple est :
http://monsite.fr/actu-de-la-ville-de-g ... age-2.html
ca marche très bien....

Par contre si on est sur la page 1 donc
http://monsite.fr/actu-de-la-ville-de-grenoble.html

ca supprime renoble.html

Donc je cherche la solution pour supprimer page-(0-9)(2).html
J'espère que vous m'avez compris ...

Re: Supprimer un contenu stocké dans une variable

par or 1 » 14 avr. 2016, 17:12

Supprimer un contenu stocké dans une variable

par yoann38 » 14 avr. 2016, 17:10

Salut à tous je suis toujours sur mon problème de pagination.
Donc j'ai eu une idée mais bon pas terrible terrible pour les puriste je pense.

Donc en fait je récupère l'url en cours ( url rewriting ) avec :
$monUrl = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
Et je fait mon lien ainsi:
$pagination .= '<a href="'.$monUrl.'-page-'.$next.'.html" class="page" data-page="'.$next.'" data-du="'.$du.'" data-au="'.$au.'"><i class="fa fa-angle-right"></i>
Donc ca l'air de marché...
Je cherche juste une solution pour supprimé le page-2.html que je récupére dans $monUrl mais également

En gros supprimé le .html mais également page-(+ le numéro de page si il est supérieur ou égale à 1 )

Merci à vous ;)