Tach!
Aber klar, dass der Link nach den Buchstaben CD aufhört. Nun könnte man meinen, dieses hier schafft Abhilfe:
echo "<a id='No".$lfd."' href='".urlencode($row['url'])."'> </a>";
Jetzt zeigt der Firefox-Quellcode dieses:
<a id='No29' href='http%3A%2F%2Fshantychor-bad-zwischenahn.de%2FUnsere%2520CD%27s%2F10-an-de-eck.mp3'> </a>
das Leerzeichen wurde also zu %2520 - das funktioniert auch nicht.
Ja, wenn das Leerzeichen zu %2520 wird, hast du ein als %20 kodiertes Leerzeichen nochmal kodiert, woraufhin es das % zu %25 kodiert hat. Außerdem ist urlencode() nicht dazu geeignet, eine vollständige URL zu bearbeiten. Es ist dafür vorgesehen, Daten zu kodieren, die in einem Teil einer URL weitergereicht werden sollen. Beispiele dazu im PHP-Handbuch. Zudem ist urlencode() nicht für den Path-Teil einer URL vorgesehen, dafür gibt es rawurlencode().
dedlfix.