dans le texte, je peux mettre le code secret par exemple: strong> p> Les gens sont très gentils, [gal ~ route ~ 100 ~ 100], les gens sont très
Nice, [GA2L ~ Route2 ~ 150 ~ 150] P>
BlockQquote> Dans cette expression, vous pouvez voir les codes courts dans [] étiquettes, je souhaite montrer le texte sans ce court-circuit et le remplacer pour la galerie (avec PHP inclure et lisez la galerie de trajectoire de shortcode) p> < P> Je pense utiliser cette méthode, comme vous pouvez le voir, mais aucun d'entre eux ne fonctionne pour moi, mais les gens ici peuvent me dire quelque chose ou me donner une idée qui peut m'aider p> merci p> p>
6 Réponses :
Vous pouvez utiliser une expression régulière pour correspondre aux éléments à l'intérieur des crochets. Et ensuite Références: P>
Une bonne référence pour apprendre des expressions régulières: http://www.regular-expressions.info/ p> exploser () code> la chaîne avec délimiteur sous forme
~ code> pour obtenir les autres valeurs (ou vous pouvez utiliser une expression régulière pour cela aussi). P>
Votre chaîne Remplacer les variables de paramètre n'accepte pas les valeurs de tableau; essayez d'utiliser la méthode ci-dessous:
1. Le frist essaye de remplacer le caractère de chaîne '['
2. Ensuite, essayez de remplacer le caractère de chaîne ']' p> Veuillez essayer ceci; p>
La recherche et remplacer args à str_replace code> très bien peut i> être des tableaux. Si les deux sont des matrices,
$ A [0] code> sera remplacé par
$ b [0] code>, etc. Voir
str_replace code> , et notamment noter la description des paramètres et la partie de l'exemple # 1 qui parle de pizza, de bière et de crème glacée. :)
@CHAO: Merci pour votre commentaire et partageez vos connaissances
Je vous suggère d'utiliser une expression régulière pour trouver toutes les occurrences de votre modèle de code de courtage.
Il utilise L'expression régulière contenue dans ce code essaie simplement de faire correspondre 0 à des occurrences illimitées d'un caractère entre les crochets la chaîne résultante est maintenant p> en rupture Le problème en 2 phases p> Il est plus simple de développer et de déboguer. Il est également plus facile si vous souhaitez modifier à un moment donné comment vos codes courts-coureurs traduisent les URL ou quoi que ce soit. P> Edit: Strong> Comme suggéré par Jack, en utilisant Preg_replace_callback permettrait de le faire plus simple. Voir sa réponse. P> p> preg_match_all code> (Documentation ici ) pour trouver toutes les occurrences, puis simple
str_replace code> (documentation ici ) Pour remettre le code court transformé dans la chaîne p>
[ code> et
] code> p>
Nice Nice, je comprends maintenant comment fonctionne Preg_Match, Merci pour votre grande aide !!!
Il y a preg_replace_callback () code> pour cet objectif exact ou le modificateur
/ e code>, mais ce n'est pas recommandé.
@ user1851816 j'ai simplifié la boucle
Merci @jack je ne savais pas à ce sujet
@emartel Vous pouvez trouver un exemple de travail dans ma réponse; Il évite également le shaky str_replace () code> que vous utilisez (qui pourrait être amélioré par le drapeau
preg_offset_capture code> et à l'aide de
substr_replace () code>.
@Jack, j'ai toujours voulu en savoir plus sur les expressions régulières et je n'ai jamais pris de temps, merci d'avoir partagé cette information, j'ai ajouté une note en disant de regarder votre réponse au cas où la réponse acceptée n'est pas modifiée à la vôtre.
Un moyen de faire cela consiste à utiliser Preg_replace_callback () Code>:
J'ai vu cela et cela a aidé et pensé si quelqu'un voudrait savoir une version plus ou moins simple terminée pour générer au moins la version nettoyée de divers codes courts-coureurs avec un bloc de contenu. [Diaporama: (Nom du diaporama)] ou [Forme: (Nom du formulaire)] (Je ne le réglais que jusqu'à ce que le diaporama montrent jusqu'à présent et que je pensais essayer de redonner. Le code est ci-dessous et peut être simplement copié dans un fichier PHP et visualisé pour voir quelle est la sortie.
<code> ob_start(); include "{$slideshowName}_slideshow.php";//OR pass through params to the file... $conditionalContent = ob_get_contents(); ob_end_clean(); </code>
révisé: texte stupide ici taht est totalement boiteux J'espère que cela vous aidera. J'ai créé cela avec des codes courts-coureurs WordPress à l'esprit à utiliser sur mon propre CMS. Le résultat de fin réel impliquera d'utiliser ob_start et y compris des fichiers PHP pour obtenir la sortie souhaitée. P>
echo 'Original:'. $ HTML. '
';
ECHO 'révisé:'. $ NOUVELCONTENT. '
';
code> p> li>
ul> <code>
//Regular expression would be : '/\[(blah:)(.)+\]/'
// The \\2 is an example of backreferencing. This tells pcre that
// it must match the second set of parentheses in the regular expression
// itself, which would be the ([\w]+) in this case. The extra backslash is
// required because the string is in double quotes.
$html = "stupid text here taht is totally lame [slideshow:topLeft] Some more dumb text [slideshow:topright] and finally some more dumb text here.";
preg_match_all('/\[(slideshow:)(.*?)\]/', $html, $matches);
$properArray = array();
$customShortCodes = array();
foreach($matches[0] as $slideKey=>$slideShow)
{
$matchNoBrackets = str_replace(array('[',']'),'',$slideShow);
$shortCodeExploded = explode(':', $matchNoBrackets);
$customShortCodes['slideshow'][$slideKey] = $shortCodeExploded[1];
}
$customShortCodes['form'][0] = 'contact us';
$customShortCodes['form'][1] = 'Mulch Count';
//loop through customShortCodes to replace proper values.
$newContent = $html;//assigning original content to new only for comparison testing.
foreach($customShortCodes as $shortCodeKey=>$shortCode)
{
if($shortCodeKey == 'slideshow')
{
print_r($shortCode);
foreach($shortCode as $show)
{
$testingReplacementText = "<strong>$show</strong>";
$originalShortCode = "[slideshow:$show]";
$newContent = str_replace($originalShortCode,$testingReplacementText,$newContent);
}
}
if($shortCodeKey == 'form')
{
//print_r($shortCode);
}
}
print_r($customShortCodes);
</code>
Curieux ressemble à votre sortie de la bonne chaîne ... qui signifie que vous devriez être capable de concéder le nom du fichier pour l'inclusion ... J'ai fait une version similaire de ceci mais est allé avec IDS [widget ##] et un look de DB Pour le contenu de remplacer mais que vous faites presque exactement la même idée, alors ... Si le fichier ne vous appartient pas, vous devrez peut-être concatez $ _SEVER ['Document_root] à cet égard ... a dû le faire dans certains cas avec divers Paramètres Apache / Server.
Vous pouvez aussi essayer quelque chose comme ceci:
Lorem ipsum dolor sit amet, Some text adipiscing elit. Phasellus id orci ac dolor dapibus Some text at eu sem. Nullam pretium bibendum urna et gravida. Donec Some text vehicula lectus nec facilisis. Maecenas vel ante tincidunt, Some other text sem id, tincidunt elit. Integer neque Some other text, ultrices in lorem Some other text, egestas ullamcorper enim.
Utilisez des expressions régulières pour la correspondre.
J'ai obtenu une bibliothèque PHP assez avancée et emballée de fonctionnalités pour gérer les codes short: Github.com/thunderer/shortcode