Reputation: 1847
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
Reputation: 5555
HTML struggles with characters used to define tag elements. Try this:
print 'No space between <? and php if you want to avoid errors!';
Also, if you want to programmatically escape those characters you can use function htmlentities()
.
Upvotes: 2
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.
<
with <
htmlspecialchars()
Upvotes: 4
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
< = <
> = >
etc...
Upvotes: 2