|
|
|
|
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Gilles Tran wrote:
> I second Warp. You can mix HTML and PHP in the same page but it's likely to
> turn into some horrible mess before you know it.
I can believe that...
> The trick is to build long text strings in PHP (that include the HTML tags
> and everything you want to see on screen) and then echo the result.
Really? It seems being able to write a basically normal HTML page with
just the odd snippet of PHP here and there to insert some computed value
is the main appeal of the language. Trying to build giant strings tends
to be awkward.
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Gilles Tran <gitran_nospam_@wanadoo.fr> wrote:
> The trick is to build long text strings in PHP (that include the HTML tags
> and everything you want to see on screen) and then echo the result.
Even if some library or whatever just echoes/prints everything it
produces (instead of returning a string), there's a way to redirect
that printing to a string. (I don't remember now the exact command
for that, though.)
--
- Warp
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Warp escribió:
> Gilles Tran <gitran_nospam_@wanadoo.fr> wrote:
>> The trick is to build long text strings in PHP (that include the HTML tags
>> and everything you want to see on screen) and then echo the result.
>
> Even if some library or whatever just echoes/prints everything it
> produces (instead of returning a string), there's a way to redirect
> that printing to a string. (I don't remember now the exact command
> for that, though.)
>
ob_start();
function_that_prints_stuff();
$string = ob_get_clean();
ob_get_clean is like getting the string with ob_get_contents, and then
throwing away the buffer with ob_end_clean. There is a dozen functions
for output buffering, so be sure to rtfm :)
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Invisible wrote:
> I just learned PHP. I feel unclean...
Good! That means you have a sense of elegance. :-) But we knew that.
> [Seriously. The *introductory tutorial* is littered with warnings about
> obscure functionallity which used to be broken but now isn't, and
> strange features that used to work one way but now work a slightly
> different way. I'm almost scared to write anything with this...]
Yes. You should be.
That and the complete clusterfuck that the naming of all the
functionality has.
> Still, for some reason PHP is extremely popular,
Because, sadly, it has huge quivering gobs of useful libraries in it.
> stitching complex blocks of HTML together with relative ease.
Don't do that on a real project. Use actual data-like templates. The
problem is that the person writing the code isn't the person who decides
what goes in the HTML.
--
Darren New / San Diego, CA, USA (PST)
On what day did God create the body thetans?
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
> stitching complex blocks of HTML together with relative ease.
http://www.odi.ch/prog/design/php/index.php
http://www.odi.ch/prog/design/php/guide.php
I disagree with "no reason to use PHP5". PHP5 has a lot of great
features (most of what the previous section says PHP4 lacks), and PHP4
is officially unmaintained since 01/01/2008.
"As PHP does not have a namespace facility like Java packages"
PHP6 will. WAY too late, but credits to them...
All the rest is quite good advice IMHO.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
>> I just learned PHP. I feel unclean...
>
> Good! That means you have a sense of elegance. :-) But we knew that.
;-)
>> I'm almost scared to write anything with this...
>
> Yes. You should be.
Hmm, well, it's not so bad if you purposely avoid all the unpredictable
edge cases. But what if you have to work on somebody else's code? My
God, it doesn't bear thinking about...
> That and the complete clusterfuck that the naming of all the
> functionality has.
Beings a whole new being to "it's massively clustered". ;-)
>> Still, for some reason PHP is extremely popular,
>
> Because, sadly, it has huge quivering gobs of useful libraries in it.
Yes, I noticed that.
In Haskell, accessing a database involves downloading source code,
trying to sort out a huge undocumented dependency hell, trying to make
the thing compile and using voodoo dolls. And then you *might* be able
to access a database.
In PHP, you just... install PHP. And it works. Immediately.
Gee, which one would you choose?
I guess this is why we have Type-I and Type-II languages. *sigh*
>> stitching complex blocks of HTML together with relative ease.
>
> Don't do that on a real project. Use actual data-like templates. The
> problem is that the person writing the code isn't the person who decides
> what goes in the HTML.
Hmm. That sounds like an interesting problem to attempt to solve...
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Invisible wrote:
> I just learned PHP. I feel unclean...
Ooo... POST data has all single-quote characters escaped by prefixing
with a backslash, and PHP doesn't unescape them before giving the string
back to you. That's a nice feature.
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Nicolas Alvarez wrote:
> http://www.odi.ch/prog/design/php/index.php
"Uhm.. err.. I have never thought about this you may anser now. And that
is exactly the point! Any unwary programmer will write codde like the
line above and introduce severe security and stability problems in his
code."
Irony, much? You're talking about unwary programmers and you apparently
haven't spent much effort proof-reading what you just typed. ;-)
"No major other language requires you to redeclare global variables
inside a function..."
Apparently Tcl isn't "major". ;-) It has precisely the same irritating
feature.
"I am writing this guide to provide useful ways how to best structure
your code."
Not your sentences, then?
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Invisible wrote:
>> Don't do that on a real project. Use actual data-like templates. The
>> problem is that the person writing the code isn't the person who
>> decides what goes in the HTML.
>
> Hmm. That sounds like an interesting problem to attempt to solve...
Meh. I use a templating thing. I have a call to which you pass a
template name, a style, an array of name->value pairs, and an array of
name->function mappings.
The template name and style maps (eventually) to a file, with stuff like
<p>Welcome, <{name}>!</p>
<p><red><{{errormessage}}>></red></p>
Lines with <{{stuff}}> where there's no "stuff" key in the name->value
array disappear completely. The rest get substituted. If the name has a
"*" on the end, it doesn't get HTML-escaped, so you can pass raw HTML
from the code. The name->function lets you do things like "display
values greater than five minutes in red" or "NULL turns into 'N/A'"
On top of that, I built one that takes a head, row, and foot template,
as well as a record resource (as returned by mysql_query()) and
generates the whole page.
--
Darren New / San Diego, CA, USA (PST)
On what day did God create the body thetans?
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Invisible wrote:
> Apparently Tcl isn't "major". ;-) It has precisely the same irritating
> feature.
It's not irritating, it's modular! ;-)
Seriously, if you don't declare variables first, there really isn't a
particularly good way of creating a global from inside a procedure, is
there?
--
Darren New / San Diego, CA, USA (PST)
On what day did God create the body thetans?
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |