[RESOLU] wikini

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 : [RESOLU] wikini

Re: wikini

par Sylvain255 » 04 sept. 2022, 19:50

bonjour je dis client mais c'est un projet bénévole ! j'avais réussi entre temps par un code à ma sauce, mais merci quand même

Re: wikini

par Saian » 04 sept. 2022, 13:14

Salut, un truc de base est pas si compliqué que ça à faire. Par contre faut que le sujet soit bien formaté et qu'il n'y ai pas de pipe dans les cellules.

$subject = '[|
cellule1|cellule2|cellule3
cellule4|cellule5|cellule6
|]';

echo preg_replace_callback('/\[\|\s(.*?)\s\|\]/s', static function($matches): string {
    $table = ['<table>'];
    foreach (explode("\n", $matches[1]) as $line) {
        $table[] = '<tr><td>'.str_replace('|', '</td><td>', $line).'</td></tr>';
    }
    $table[] = '</table>';

    return implode("\n", $table);
}, $subject);

Je ne sais pas combien te paye ton client mais je veux bien ma part. :mrgreen:

Re: wikini

par @rthur » 04 sept. 2022, 12:53

Demande-lui s'il sait quel est le nom de cette syntaxe.
Car elle est très proche de celle de Wikipedia qui utilise des accolades {| et |}

Ensuite en fonction de sa réponses, 3 solutions :
- soit c'est une syntaxe existante, et il faut que tu cherches si un parser n'existe pas déjà.
- soit ça lui convient d'avoir des accolades car c'est le plus standard, et donc tu prends un parser wikipedia-like existant
- soit il veut absolument la syntaxe avec des crochets et donc tu prends un parser existant utilisant des accolades et tu modifies le fonctionnement standard pour remplacer les accolades par des crochets

Quelques pistes de parser de la syntaxe wikipedia :
https://github.com/donwilson/PHP-Wikipe ... tax-Parser
https://github.com/JohannesBuchner/medi ... er.inc.php
Le parser officiel (mais peut être un peu overkill pour ton besoin) : https://github.com/wikimedia/parsoid

Re: wikini

par Sylvain255 » 03 sept. 2022, 21:17

par contre c'est pas [! et !] désolé mais [| et |]

Re: wikini

par Sylvain255 » 03 sept. 2022, 21:16

non mon client veut absolument ça

Re: wikini

par @rthur » 03 sept. 2022, 19:58

Bonjour,

Je ne sais pas d'où sort la syntaxe avec [! et !] mais je serais toi, je partirai sur des syntaxes plus standard comme Markdown ou celle de Wikipedia
https://docs.framasoft.org/fr/grav/mark ... l#tableaux
https://fr.wikipedia.org/wiki/Aide:Ins% ... e,_expert)

L'avantage d'utiliser des syntaxes standard c'est qu'il y a déjà des librairies qui permettent de faire ce que tu veux sans réinventer la roue
Par exemple :
- pour Markdown : https://parsedown.org/ ou https://github.com/michelf/php-markdown
- pour la syntaxe wiki : https://github.com/laurentj/wikirenderer

wikini

par Sylvain255 » 03 sept. 2022, 19:04

Bonjour pour coder un wikini j'aurais besoin de coder des tableaux comme ceci :
[!
cellule1|cellule2|cellule3
cellule4|cellule5|cellule6
!]

il faudrait les changer en balises <td><tr><table>

merci de votre aide car je ne vois vraiment pas comment faire