soort van bbcode werkt niet

Pagina: 1
Acties:

  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 09:02
(extra edit: titel: [php] soort van ubb code werkt niet

ik ben bezig met een scriptje te schrijven zodat ik makkelijk sub/sup script kan schrijven en wat andere opmaak kanmerken kan gebruiken, hiervoor had ik het volgende geschreven
PHP:
1
2
3
4
5
6
7
8
9
10
<?
$data = file_get_contents ("/opt/www/tommy/web/www.t-h-o-m-a-s.nl/temp/macro.txt");
$data = ereg_replace (" [e]", " </td></tr><tr><td><b>", $data);
$data = ereg_replace (" [/e]", " </b></td><td>", $data);
$data = ereg_replace (" [l]", " <sub>", $data);
$data = ereg_replace (" [/l]", " </sub>", $data);
$data = ereg_replace (" [h]", " <sup>", $data);
$data = ereg_replace (" [/h]", " </sup>", $data);
echo ($data);
?>

met deze code vervangt hij wel e maar niet het (door mij) verwachte maar niet [e] ..
toen heb ik
PHP:
1
2
$data = ereg_replace (" [[e]]", " </td></tr><tr><td><b>", $data);
(etc)

ervan gemaakt, dan vervangt hij helemaal niets

[ Voor 42% gewijzigd door pietje63 op 03-03-2003 23:05 ]

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 10:36

crisp

Devver

Pixelated

Je weet toch hoop ik wel dat [ ] een character class aangeeft, en dat als je het letterlijk wilt je ze moet escapen?
PHP:
1
$data = ereg_replace (" \\[e\]", " </td></tr><tr><td><b>", $data);

[ Voor 18% gewijzigd door crisp op 03-03-2003 23:06 ]

Intentionally left blank


Verwijderd

gewoon lekker in 1x doen
PHP:
1
$data = preg_replace("/(\\[b\])(.*)(\\[\/b\])/Ui", "<b>\\2</b>", $data);

Voorbeeldje voor bold

  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 09:02
crisp schreef op 03 March 2003 @ 23:06:
Je weet toch hoop ik wel dat [ ] een character class aangeeft, en dat als je het letterlijk wilt je ze moet escapen?
PHP:
1
$data = ereg_replace (" \\[e\]", " </td></tr><tr><td><b>", $data);
had ik idd ook nog geprobeerd, maar werkt evenmin (hij vervangt [e] niet...

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


  • cybermans
  • Registratie: Maart 2001
  • Laatst online: 20-08 08:46
("*\\[e\]", waarom een spatie (staat nu ff voor gemak een *)

Strava | Runkeeper | Endomondo (mijn leikr uploads)


  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 09:02
Verwijderd schreef op 03 March 2003 @ 23:11:
gewoon lekker in 1x doen
PHP:
1
$data = preg_replace("/(\\[b\])(.*)(\\[\/b\])/Ui", "<b>\\2</b>", $data);

Voorbeeldje voor bold
PHP:
1
$data = preg_replace("/(\\[e\])(.*)(\\[\/e\])/Ui", "</td></tr><tr><td><b>\\2</b></td><td>", $data);

werkt idd wel; al snap ik deze code niet 100% heb meteen de functie preg_ op php.net even opgezocht en zie dat het net iets uitgebreider is dan ereg_ ook zie ik dat er nu /(\\[e\]) staat; dus met weg escapen en nog ronde ( haakjes zijn die ronde haakjes deel van preg_ of heeft dat te maken met het wegescape?

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 10:36

crisp

Devver

Pixelated

pietje63 schreef op 03 maart 2003 @ 23:17:
[...]

PHP:
1
$data = preg_replace("/(\\[e\])(.*)(\\[\/e\])/Ui", "</td></tr><tr><td><b>\\2</b></td><td>", $data);

werkt idd wel; al snap ik deze code niet 100% heb meteen de functie preg_ op php.net even opgezocht en zie dat het net iets uitgebreider is dan ereg_ ook zie ik dat er nu /(\\[e\]) staat; dus met weg escapen en nog ronde ( haakjes zijn die ronde haakjes deel van preg_ of heeft dat te maken met het wegescape?
De ronde haken zijn in dit geval overbodig:
PHP:
1
$data = preg_replace('/\\[e\](.+)\\[\/e\]/Uis', '</td></tr><tr><td><b>$1</b></td><td>', $data);

linespanning (/s modifier) kan in dit geval ook handig zijn ;)

Note: verschil tussen (.*) en (.+): in het eerste geval wordt [e][/e] toegestaan; in het tweede geval moet er minstens 1 karakter tussen staan - pick what you want...

[ Voor 21% gewijzigd door crisp op 03-03-2003 23:22 ]

Intentionally left blank

Pagina: 1