Making "containers" – is there a way? – PHP

  php

Q(Question):

I want to do this:

function square ($a){ print "– $a –"; }

And use it like this:

<? square( ?> Hello! <? ) ?>

And get this:

— Hello! —

But of course it doesn’t work, so I have to do this:

function square1 { print "– "; }
function square2 { print " –"; }

And us it like this:

<? square1() ?> Hello! <? square2() ?>
Which isn’t as clean… Is there a way to solve it like I want to do it?
If you hadn’t understood it yet, it’s for making a frame around blocks
of text.

A(Answer):

it’s for making a frame around blocks of text.

Not sure exactly what you meant, but have you considered doing this in CSS
stylesheets?
<style type="text/css">
p.box {border: 1px solid black; padding: 8px;}
</style>
<p class="box">Block of text</p>

Martin

A(Answer):

Sandman wrote:

If you hadn’t understood it yet, it’s for making a frame around blocks
of text.

<p style="border-style: dashed; border-width: 1px; border-color:
black;">Hello</p>

HTH;
JOn

A(Answer):

In article <Pi**************************************@green.cs i.cam.ac.uk>,
Martin Lucas-Smith <mv***@cam.ac.uk> wrote:

it’s for making a frame around blocks of text.

Not sure exactly what you meant, but have you considered doing this in CSS
stylesheets?
<style type="text/css">
p.box {border: 1px solid black; padding: 8px;}
</style>
<p class="box">Block of text</p>

Thanks, but CSS only affects the appaerance, I want to actually insert things
before and after the text.


Sandman[.net]

A(Answer):

In article <bi**********@titan.btinternet.com>, haptiK <no****@nospam.com>
wrote:

I want to do this:

function square ($a){ print "– $a –"; }

And use it like this:

<? square( ?> Hello! <? ) ?>

And get this:

— Hello! —

But of course it doesn’t work, so I have to do this:

function square1 { print "– "; }
function square2 { print " –"; }

And us it like this:

<? square1() ?> Hello! <? square2() ?>
Which isn’t as clean… Is there a way to solve it like I want to do it?
If you hadn’t understood it yet, it’s for making a frame around blocks
of text.

whats wrong with the following…
<?php
function square($a) {

print "– $a –";

}
?>

<?php square(‘Hello!’); ?>

thats all you need to do… am i missing something here?

Well, I want to use this for things like:

<? square( ?>
Hello, everything here will be inside a nice looking box, constructed with a
table, and this image will also look fine: <img ….> And bla bla bla…
<? ); ?>

See? I don’t want to be restricted by the limitations that the function string
implies.


Sandman[.net]

A(Answer):

Sandman:

Well, I want to use this for things like:

<? square( ?>
Hello, everything here will be inside a nice looking box, constructed with
a table, and this image will also look fine: <img ….> And bla bla bla…
<? ); ?>

See? I don’t want to be restricted by the limitations that the function
string implies.

Use a function, but whenever the string becomes complicated use heredoc
syntax (see
http://www.php.net/manual/en/languag…syntax.heredoc)

If the contents become quite large, use file inclusion where
square(‘filename’) means to wrap the contents of filename with whatever you
define in square().

IMO they are both a lot easier on the eye than the syntax you want… Don’t
forget that other people may have to work with your code at some stage đŸ™‚

André Næss

A(Answer):

"Sandman" <mr@sandman.net> wrote in message
news:mr**********************@news.fu-berlin.de…

Well, I want to use this for things like:

<? square( ?>
Hello, everything here will be inside a nice looking box, constructed with
a table, and this image will also look fine: <img ….> And bla bla bla…
<? ); ?>

See? I don’t want to be restricted by the limitations that the function
string implies.

How about doing it the template way ? Just insert an imaginary tag to your
HTML, like {square}:

{square}
Hello, everything here will be inside a nice looking box, constructed with a
table, and this image will also look fine: <img ….> And bla bla bla…
{/square}

Then at the end just pass all the output of the file through a function that
replaces {square} and {/square} with whatever you wish. output buffering
will be handy here, lets you edit and play with outputted text (text outside
php tags) before it is sent to the browser.
See: http://www.php.net/ob_start
HTH


Suni

LEAVE A COMMENT