You are here: Re: [PHP] mozilla & urlencode « PHP « IT news, forums, messages
Re: [PHP] mozilla & urlencode

Posted by Jochem Maas on 06/05/05 23:02

John Taylor-Johnston wrote:
> This works: "District of St. Francis"
>
> http://www.glquebec.org/tezt.php#District+of+St.+Francis
> <a name="District+of+St.+Francis"></a>
>
> This does not: "Montréal District #2"
>
> http://www.glquebec.org/tezt.php#Montr%E9al+District+%232
> <a name="Montr%E9al+District+%232"></a>
>
> I'm beginning to see the problem lies with the French character "é". I
> don't see it being #. In any case, I cannot change existing fields. How
> can I get this working?

read:
http://www.w3.org/TR/REC-html40/struct/links.html#h-12.2.1
http://www.w3.org/TR/REC-html40/appendix/notes.html#non-ascii-chars
http://www.w3.org/TR/xhtml1/#h-4.10
http://www.w3.org/TR/xhtml1/#C_8
[w3c - confronting us daily with the fact that they are smarter than us :-)]

in short; only strings passing this regexp:

[A-Za-z][A-Za-z0-9:_.-]*

....are ok for use in the name attribute.
you will have to either change the data you have in the DB
or transform the text so that all non-ascii chars are replaced with
their ascii equivalent (e.g. é -> e) whenever you wish to use
the text in a name attribute.

and you can totally forget using the '#' in the value of a name attribute!
I don't know what kind of data entity the string 'Montréal District #2'
belongs to but maybe it has a keyfield (numeric is easiest here!) which
can be used to set the value of the name attribute.

good luck!
rgds,
Jochem

>
> Pablo Gosse wrote:
>
>> I'm not sure, but I see two things that might be causing this. First,
>> why are spaces, which should be translated as %20, being represented
>> as a '+'?
>>
>> Second, you have a # in the actual bookmark name, which I would assume
>> is not valid since the # denotes the beginning of a bookmark. So
>> perhaps IE compensates for this, but Mozilla reads the bookmark as
>> looking for <a name="4"></a> because of the #4 at the end of the
>> bookmark name.
>
>
> I generate the link using urlencode.
>
> if ("" != $mydata->district){
> echo " - <a
> href=\"#".urlencode($mydata->district)."\">$mydata->district</a></h1>";
> }else{
> echo "</h1>";
> }
>
> The link is named:
>
> echo "<hr size=1><a
> name=\"".urlencode($mydata->district)."\"></a><h2>$mydata->district</h2>\n";
>

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация