471,088 Members | 1,277 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 471,088 software developers and data experts.

Making "containers" - is there a way?

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.
Jul 16 '05 #1
6 1915


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
Jul 16 '05 #2
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
Jul 16 '05 #3
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]
Jul 16 '05 #4
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]
Jul 16 '05 #5
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
Jul 16 '05 #6

"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
Jul 16 '05 #7

This discussion thread is closed

Replies have been disabled for this discussion.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.