IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend Framework PHP Discussion :

[Zend] comment extraire un chaine


Sujet :

Zend Framework PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Symfony - CMS Wordpress - Zend
    Inscrit en
    Septembre 2011
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Symfony - CMS Wordpress - Zend
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 306
    Points : 101
    Points
    101
    Par défaut [Zend] comment extraire un chaine
    Bonjour,

    Je travail avec Zend 1.x sur un projet ou je doit recuperer le nombre de page dans une url.

    dans l'objectif de l'enregistrer comme preference de l'utilisateur.

    voici un exmple d'url:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    requete/resultat/acceuil/id/1/page/1/count/150/cookies1215465161564878b112bv13%232bn1%3b21%b12n%v213%21vb32nc1vb35/
    cette url est une url simplifier comment recuperer ce qui se trouve après : en l'occurence le nombre ou la chaine de caractère la fonction doit me permettre de recuprer tous ce qui est après qu'ils prennent 1,2 ou 6 de longeurs..

    J'ai essayé avec mais je vois comment le faire avec le moins de code possible

    Peut-être que vous oui?

    Merci pour vos réaction.

  2. #2
    Membre régulier
    Homme Profil pro
    Symfony - CMS Wordpress - Zend
    Inscrit en
    Septembre 2011
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Symfony - CMS Wordpress - Zend
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 306
    Points : 101
    Points
    101
    Par défaut Une première solution..
    Bon voila une première ébauche..

    Peut-être est-il possible d'optimiser ou de factoriser le code..

    Merci,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $subString = strstr($userAmoutItemsPage,"/count/");
    $countString = substr($subString,7);
    list($userAmountItems,$rest) = explode('/',$countString);

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ca m'ettonerait que cette URL corresponde à une arborescence réelle, il doit s'agit d'une réecriture.
    Comment l'obtiens-tu au départ ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre régulier
    Homme Profil pro
    Symfony - CMS Wordpress - Zend
    Inscrit en
    Septembre 2011
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Symfony - CMS Wordpress - Zend
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 306
    Points : 101
    Points
    101
    Par défaut DSL c'était un exemple..
    C'est juste un exemple..

    en fait c'est le framework Zend qui correspond au module->controller->action

    le reste c'est des cookies générer par le serveur..

    mais c'est pas un copier/coller de l'url d'origine

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    D'accord mais dans ton code comment tu recuperes cette chaine au départ ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre régulier
    Homme Profil pro
    Symfony - CMS Wordpress - Zend
    Inscrit en
    Septembre 2011
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Symfony - CMS Wordpress - Zend
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 306
    Points : 101
    Points
    101
    Par défaut Oui, oui
    Dans ma vue je fait ce qui retourne la route de la vue ou je travail.

    Merci "Zend" le ViewHelper me reconstruit la route : (action -> controller -> module)

    si j'ai analyser je ne retrouverais pas de count deux fois dans la meme route..

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je déplace ta discussion dans Zend parce que j'imagine qu'il y a une méthode prévue pour récuperer cette info.
    Découper la chaine c'est prendre le problème à l'envers.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Membre régulier
    Homme Profil pro
    Symfony - CMS Wordpress - Zend
    Inscrit en
    Septembre 2011
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Symfony - CMS Wordpress - Zend
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 306
    Points : 101
    Points
    101
    Par défaut Zend ne renvoi pas le nombres de d'element en cours...
    J'ai une vue specialement faite pour la pagination la voici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     <?php if ($list instanceof Zend_Paginator && $filter->isPaginated()) echo $this->paginationControl(
            $list,
            'Sliding',
            'partials/paginator.phtml',
            array('numberOfPagesByStep' => 50)
        ) ?>
    ceci affiche un select(html) avec le nombre d'elements voulu dans cette même page et avec un saut(numberOfPagesByStep) de 50 elem dans la page.

    Quand je fais un choix dans mon select, la page ce met a jours et l'url passe à count/150 si je choisi "150"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://localhost:8000/module/controller/action/page/1/count/150
    Mon souci c'est que je veux récuprer le nombre d'element de ma page après modification pour pouvoir l'enregistrer en BDD..

    j'ai essayé cette methode de Zend_Paginator via "$this->itemCountPerPage" dans ma vue:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
     /**
         * Returns the number of items per page.
         *
         * @return integer
         */
        public function getItemCountPerPage()
        {
            if (empty($this->_itemCountPerPage)) {
                $this->_itemCountPerPage = self::getDefaultItemCountPerPage();
            }
     
            return $this->_itemCountPerPage;
        }
     
    /**
         * Creates the page collection.
         *
         * @param  string $scrollingStyle Scrolling style
         * @return stdClass
         */
        protected function _createPages($scrollingStyle = null)
        {
            $pageCount         = $this->count();
            $currentPageNumber = $this->getCurrentPageNumber();
     
            $pages = new stdClass();
            $pages->pageCount        = $pageCount;
            $pages->itemCountPerPage = $this->getItemCountPerPage();
            $pages->first            = 1;
            $pages->current          = $currentPageNumber;
            $pages->last             = $pageCount;
     
            // Previous and next
            if ($currentPageNumber - 1 > 0) {
                $pages->previous = $currentPageNumber - 1;
            }
     
            if ($currentPageNumber + 1 <= $pageCount) {
                $pages->next = $currentPageNumber + 1;
            }
     
            // Pages in range
            $scrollingStyle = $this->_loadScrollingStyle($scrollingStyle);
            $pages->pagesInRange     = $scrollingStyle->getPages($this);
            $pages->firstPageInRange = min($pages->pagesInRange);
            $pages->lastPageInRange  = max($pages->pagesInRange);
     
            // Item numbers
            if ($this->getCurrentItems() !== null) {
                $pages->currentItemCount = $this->getCurrentItemCount();
                $pages->itemCountPerPage = $this->getItemCountPerPage();
                $pages->totalItemCount   = $this->getTotalItemCount();
                $pages->firstItemNumber  = (($currentPageNumber - 1) * $this->getItemCountPerPage()) + 1;
                $pages->lastItemNumber   = $pages->firstItemNumber + $pages->currentItemCount - 1;
            }
     
            return $pages;
        }
    mais je récupère systématiquement le premier elem donc "50" et pas l'elem en cours..

    j'ai fais un dump de $page de ma fonction _createPages mais rien avec la valeur souhaiter..

    Ps: je precise cela, je fais une requete ajax pour enregistrer la valeur en BDD. le traitement est envoyé via ajax dans mon controller pour traitement..

    Merci pour vos réactions.

Discussions similaires

  1. Comment extraire une chaine de caractères
    Par pierrot10 dans le forum Débuter
    Réponses: 18
    Dernier message: 31/07/2013, 10h09
  2. Comment extraire une chaine d'un fichier texte en ASCII
    Par tim91700 dans le forum Débuter
    Réponses: 6
    Dernier message: 30/03/2011, 22h21
  3. Comment extraire une chaine de caractère?
    Par moiguigui60 dans le forum C#
    Réponses: 6
    Dernier message: 03/11/2010, 11h46
  4. Comment extraire des caractères d'une chaine ?
    Par Powa87 dans le forum Langage
    Réponses: 16
    Dernier message: 01/01/2005, 19h00
  5. [Zip] Comment Extraire un zip en php
    Par djshaker dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 20/10/2004, 11h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo