[php] ouput naar variable

Pagina: 1
Acties:
  • 30 views sinds 30-01-2008

  • Guillome
  • Registratie: Januari 2001
  • Niet online
Hay ik heb even een vraagje over PHP.
Ik heb een functie:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
  function blaat($blaat_id)
  {
     SQL hier
     PHP daar
    ?>
    <table style="width:450px;" cellpadding="3px" cellspacing="0px" class="menu_gedeelte">
      <tr>
        <th colspan="3">Blaat: <?php echo $row["question"]; ?></th>
      </tr>
    </table>
<?php
  }
?>

Als ik dan in m`n UBB convertor dit doe:

PHP:
1
2
3
4
5
6
  function make_blaat($matches)
  {
    return blaat($matches[1]);
  }

    $text = preg_replace_callback("/\\[blaat\](\d+)\\[\/blaat\]/i", "make_blaat", $text);

dan gaat dat niet goed.
Zodra hij bij deze code komt, put hij (nogal logisch) de HTML meteen uit.
Maar dat moet niet. Ik moet de output in die blaat() functie opslaan.
Hoe doe ik dat? Of moet ik de functie helemaal aanpassen zodat hij 1 string terug geeft? Dat is niet wenselijk want dan is het aanpassen van de layout zo`n gedoe.

Kan iemand mij helpen hiermee? :)
Bij voorbaat dank!

[ Voor 13% gewijzigd door Guillome op 03-08-2004 11:01 ]

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


  • RwD
  • Registratie: Oktober 2000
  • Niet online

RwD

kloonikoon

Misschien vindt je hier je antwoord: http://nl2.php.net/outcontrol
(ik doe maar een gok, ik los zoiets eigenlijk anders op)

Maar je zou die html toch ook in een variabele kunnen stoppen ipv daar outputten??

[ Voor 17% gewijzigd door RwD op 03-08-2004 11:04 ]


  • Guillome
  • Registratie: Januari 2001
  • Niet online
Of moet ik de functie helemaal aanpassen zodat hij 1 string terug geeft? Dat is niet wenselijk want dan is het aanpassen van de layout zo`n gedoe.
;)
Hoe zou jij het oplossen?
Er zit namelijk heel veel PHP code bij (sql/loops etc);
ob_start() werkt niet. Hij put het nog steeds eh.. out? :P
Ik lees even verder.

[ Voor 28% gewijzigd door Guillome op 03-08-2004 11:10 ]

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Verwijderd

XLerator schreef op 03 augustus 2004 @ 11:06:
[...]

;)
Hoe zou jij het oplossen?
Er zit namelijk heel veel PHP code bij (sql/loops etc);
ob_start() werkt niet. Hij put het nog steeds eh.. out? :P
Ik lees even verder.
ob_start();
$content = ob_get_contents();
ob_end_clear();

Dat was het volgens mij.. Zoek even op www.php.net/ob_start

  • RwD
  • Registratie: Oktober 2000
  • Niet online

RwD

kloonikoon

XLerator schreef op 03 augustus 2004 @ 11:06:
[...]

;)
Hoe zou jij het oploessen?
Template engine, dan behoud je het makkelijke aanpasbare (het wordt zelfs makkelijker) En je verliest het probleem.

Er zijn heel wat discussies over, maar mijn persoonlijke voorkeur gaat uit naar TinyButStrong omdat deze niet een verkapte vorm van PHP is zoals bijvoorbeeld Smarty. Bovendien gaat het ontwikkelen veel sneller dan de meeste andere engines zodra je het door hebt.

En sinds de nieuwste versie ook een stuk sneller dan voorheen...

  • Guillome
  • Registratie: Januari 2001
  • Niet online
Ok bedankt! Het werkt :D
Zoals stoel zei, heb ik het gedaan :D Top

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


  • RwD
  • Registratie: Oktober 2000
  • Niet online

RwD

kloonikoon

nou ja vooruit dan maar, ik heb je dus wel de goede pagina van de manual gegeven, beide functies staan er in. B)

Maar ik zou serieus een template engine overwegen voor volgende projecten als ik jou was...

  • Guillome
  • Registratie: Januari 2001
  • Niet online
Sorry, RwD, jij ook erg bedankt uiteraard!!!

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


  • Shadowman
  • Registratie: Januari 2002
  • Niet online
RwD schreef op 03 augustus 2004 @ 11:12:
[...]
Template engine, dan behoud je het makkelijke aanpasbare (het wordt zelfs makkelijker) En je verliest het probleem.

Er zijn heel wat discussies over, maar mijn persoonlijke voorkeur gaat uit naar TinyButStrong omdat deze niet een verkapte vorm van PHP is zoals bijvoorbeeld Smarty. Bovendien gaat het ontwikkelen veel sneller dan de meeste andere engines zodra je het door hebt.

En sinds de nieuwste versie ook een stuk sneller dan voorheen...
Als je iets doorhebt gaat het ontwikkelen imho toch altijd sneller.

Is die templateengine btw nou al sneller als smarty?

@TS: Ik vind outputbuffering zoals je het nu gebruikt eerlijk gezegd niet het probleem oplossen, maar afvangen. Je kunt ook gewoon alle data gelijk in 1 var zetten en dat dan returnen.

  • RwD
  • Registratie: Oktober 2000
  • Niet online

RwD

kloonikoon

RwD; net zo'n klein kind dat ook aandacht en erkenning wil O-)

@Shadowman:
Nou, dat is wel waar, alleen de ontwikkeltijd met TBS is korter dan met Smarty; dat vindt ik in ieder geval. En als je naar de testimonials gaat kijken, ben ik in ieder geval niet de enige :)
Bovendien zie ik niet in waarom je Smarty zou kiezen boven PHP zelf. De structuren van Smarty en PHP komen overeen, dus kun je net zo goed php-en...

TBS is nu sneller dan eerst, die 5x langzamer dan smarty was het nooit, en is het nu zeker niet meer. Maar hoe snel het nu in verhouding is weet ik niet...

[ Voor 84% gewijzigd door RwD op 03-08-2004 12:39 ]


  • Guillome
  • Registratie: Januari 2001
  • Niet online
Lolz :P
Maarre Shadowman: dat is niet handig. De functie is te groot. Er zit zoveel code in, dan moet ik er 1 grote string-brei van maken. Dat is niet overzichtelijk.
Ik ga bij de volgende keer eens het template verhaal bestuderen :) Bedankt voor de tips

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


  • Shadowman
  • Registratie: Januari 2002
  • Niet online
XLerator schreef op 03 augustus 2004 @ 12:19:
Lolz :P
Maarre Shadowman: dat is niet handig. De functie is te groot. Er zit zoveel code in, dan moet ik er 1 grote string-brei van maken. Dat is niet overzichtelijk.
Ik ga bij de volgende keer eens het template verhaal bestuderen :) Bedankt voor de tips
Je hoeft niet alle data direct in een string te zetten. Je kunt dat ook om de zoveel tijd doen dmv de strings te concatenaten.

PHP:
1
2
$data="hoi ";
$data.="XLerator";
Geeft bv in $data netjes hoi XLerator

@RwD:
Ik heb nooit iets beweerd over verschil van snelheden tussen smarty en tbs. Enkel wist ik dat er verschil was, niet exact hoeveel :P.

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Ja doeg, we gaan hier niet weer die tbs / smarty discussie houden, hoor :| :|
@TS: Ik vind outputbuffering zoals je het nu gebruikt eerlijk gezegd niet het probleem oplossen, maar afvangen. Je kunt ook gewoon alle data gelijk in 1 var zetten en dat dan returnen.
Je kunt het ook anders zien: output buffering is een manier om het in 1 var te zetten.

Overigens is dit imo vrij basic en gewoon manual werk.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1

Dit topic is gesloten.