Iam Zesh
Iam Zesh

Reputation: 1847

Php basics: printing <?

Re-reading a bit about php basics, as to refresh some things and to be more accurate when coding, I tried to print <? in a string with the print function and noticed that I cannot find a way to do it.

I am a bit confused because reading about the difference between singe and double quotes, I thought that the only characters needing a special treatment inside single-quoted strings were the backslash and the single quote (as in O'Reilly literature).

Of course, the <? is not any kind of character string but I was wondering how could I print it inside of a string.

I tried to escape it, to put it in a variable, to use here document but without any success. Actually looking at the source code in Firefox, I can see the characters are but they're just not displayed.

Here is my test-string:

print 'No space between <? and php if you want to avoid errors!';

I suspect it to be very basic but still I guess that getting all the basics perfectly straight is the way to go, so here I am.

Upvotes: 1

Views: 134

Answers (3)

Nadir Sampaoli
Nadir Sampaoli

Reputation: 5555

HTML struggles with characters used to define tag elements. Try this:

print 'No space between &lt;? and php if you want to avoid errors!';

Also, if you want to programmatically escape those characters you can use function htmlentities().

Upvotes: 2

Madara&#39;s Ghost
Madara&#39;s Ghost

Reputation: 174977

This isn't a PHP problem. HTML interprets it as a strating of a tag and renders it as HTML. See the page's source.

Solutions

Upvotes: 4

Anirudh Ramanathan
Anirudh Ramanathan

Reputation: 46738

There exist characters such as space, <, >, which cannot be printed unless you use a specific sequence. To print the following in an HTML/XML output page, you must replace it using the following characters

< = &lt;
> = &gt;

etc...

Upvotes: 2

Related Questions