& is automatically turned into & !?
Permalink
Hey,
I have a little problem. On my pagetype I want to print a dynamic image, lets say in this form: <img src="anyurl/img.php?a=b&c=d">
But when I echo this, it automatically transfers the '&' into a '&' which will destroy the img-link and not display it (instead showing the alt-Text for the img).
How can I prevent that the & gets automatically replaced by & for this one line?
I have a little problem. On my pagetype I want to print a dynamic image, lets say in this form: <img src="anyurl/img.php?a=b&c=d">
But when I echo this, it automatically transfers the '&' into a '&' which will destroy the img-link and not display it (instead showing the alt-Text for the img).
How can I prevent that the & gets automatically replaced by & for this one line?
Thank you for your reply.
That doesn't help, I tried both of this:
In both cases it will print a & amp; and therefor destroy my dynamic links..
Any other idea? :(
That doesn't help, I tried both of this:
<?php (...) echo '&'; (...) ?>
<?php (...) ?> & <?php (...) ?>
In both cases it will print a & amp; and therefor destroy my dynamic links..
Any other idea? :(
Where exactly are you putting the php?
It's a pagetype for a person page, placed in (...)/themes/[ThemeName]/Person.php
The only other thing I can think of is that it could be the editor you are using to edit the file, converting the ampersand when it saves. Other than that, I have no more ideas.
I'm 100% sure that it's not about the editor.
Does concrete5 somehow convert all htmlentities? Any way to skip that for certain lines or files?
Does concrete5 somehow convert all htmlentities? Any way to skip that for certain lines or files?
What does the request for the image look like in the network tab of the developer console? Is it definitely the src that is corrupted, and not the url that comes in to ....img.php?
I checked this now. Even though the source code shows the URL with & amp; the webconsole has the right url request - at least it shows & instead of & amp; in the url it was loading.
However the result for the image is a HTTP 400 Bad Request. When I copy the URL from the webconsole to the address bar it can load the image though.
So I guess the request is done with the & amp; instead of & and it will only display it correctly in the console. (Because 400 Bad Request is exactl what I get if I put & amp; instead of & to the URL and browse it manually)
So the problem remains :(
However the result for the image is a HTTP 400 Bad Request. When I copy the URL from the webconsole to the address bar it can load the image though.
So I guess the request is done with the & amp; instead of & and it will only display it correctly in the console. (Because 400 Bad Request is exactl what I get if I put & amp; instead of & to the URL and browse it manually)
So the problem remains :(
Lintu,
I am no PHP expert (trust me!), but a little Googling about URL encoding of HTML characters and I came across 2 different PHP functions that you may be able to use on your generated image source URL:
html_entity_decode: http://tinyurl.com/kthn8
htmlspecialchars_decode: http://tinyurl.com/yc7wqda
I don't know about the specifics of either one, but maybe if you wrap the src URL for your image in one or the other of these functions it will work correctly for you.
Hope that helps!
- John
I am no PHP expert (trust me!), but a little Googling about URL encoding of HTML characters and I came across 2 different PHP functions that you may be able to use on your generated image source URL:
html_entity_decode: http://tinyurl.com/kthn8
htmlspecialchars_decode: http://tinyurl.com/yc7wqda
I don't know about the specifics of either one, but maybe if you wrap the src URL for your image in one or the other of these functions it will work correctly for you.
Hope that helps!
- John
I also googled this issue alot and found a few (including your 2) functions which may have helped. Unfortunatelly they don't, the result remains exactly the same if I use or don't use those functions.
The problem is probably that the & gets converted into a & ; after all the php file is executed. I don't know how concrete5 buffers the output, but I can say that I don't really like it. Either it's just missing a decent documentation or it's not optimized at all. I'm a little bit disappointed in concrete5 at this point.
Anyways thank you for trying to help me :)
The problem is probably that the & gets converted into a & ; after all the php file is executed. I don't know how concrete5 buffers the output, but I can say that I don't really like it. Either it's just missing a decent documentation or it's not optimized at all. I'm a little bit disappointed in concrete5 at this point.
Anyways thank you for trying to help me :)
Just to make sure, in your examples above you have spaces " " on both sides of the ampersand "&", is that really how you're outputting it? Could we get the url for this site to see how it behaves?
This is how the link is shown:
I just forgot to use the code block in the first post. Didn't know that the forums would eat the HTML entities.
Edit: omg even in the code block the forums ruin my format.. This:http://pastebin.com/zSphkiH5
(...).php?a=b&c=d
I just forgot to use the code block in the first post. Didn't know that the forums would eat the HTML entities.
Edit: omg even in the code block the forums ruin my format.. This:http://pastebin.com/zSphkiH5
In your page source like that?
And how do you print out the link?
Please paste like 10 lines on both sides of the code to see it really in context and also the whole HTML source that the page request produces.
And how do you print out the link?
Please paste like 10 lines on both sides of the code to see it really in context and also the whole HTML source that the page request produces.
Any ideas?