Question

Dans mon texte, les modules d'entrée de boîte utilisateur qui ressemblent à ceci; [[form:contact]], ce qui représente un module et son nom; [[module:name]

J'utilise le code suivant à me rétracter du texte, et le diviser, obtenir les informations de la base de données que je veux et le remplacer.

Est-ce la meilleure façon? Il fonctionne bien, mais je ne suis pas sûr que ce soit la façon la plus efficace, et je me demandais whay les gars penseraient ...

Je travaille avec le Zend Framework.

Voici le code:

$start = strpos($this->view->page->text, "[[");
$end = strpos($this->view->page->text, "]]");
$length = $end-$start+2;

$getModuleTag = substr($this->view->page->text, $start, $length);
$length = $end-$start-2;
$removeTags = substr($getModuleTag, 2, $length);

$split = strpos($removeTags, ":");

$GetModuleSort = substr($removeTags, 0, $split);
$GetModuleName = substr($removeTags, $split+1);

// Get the wanted data from the database
switch($GetModuleSort)
{
    case 'form':
        $this->result = $this->formsService->GetFormByName($GetModuleName);
        $replaceTag = $this->result->elements;
    break;
}

// TEST OUTPUT
$final = str_replace($getModuleTag, $replaceTag, $this->view->page->text);
$this->view->finalOutput = $final;
Était-ce utile?

La solution

Oui, il est une bonne façon de le faire.

Autres conseils

Vous pouvez utiliser une expression- régulière en fonction de vos besoins:

$pattern="/\[\[(.*?)\]\]/";
$string="some string with a [[module]] in it, and [[another]] here";
$match=preg_match_all($pattern, $string, $matches);
print_r($matches);

donnerait un tableau de tous les modules / identifiants:

Array ( [0] => Array ( [0] => [[module]] [1] => [[another]] ) [1] => Array ( [0] => module [1] => another ) ) 

Le premier enfant comprend les extraits que les enfants de tableau avec les supports (si vous avez besoin de ces) le deuxième enfant contient un tableau du contenu ....

travaillerait avec autant de références que vous le souhaitez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top