Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem PHP automaticky vytváření odkazu

Zdravím
Potřeboval bych poradit jak vytvořit odkaz na soubory typu mp3 které jména navíc není pevně definované, na který kdys se klikne tak se spustí v prohlížeči

Tento kód najde v adresáři a zobrazí soubory typu *.mp3


<?php
   foreach (glob("*.mp3") as $filename) {
  echo "$filename <br />";
  }
?>

a já bych potřeboval udělat s nich odkazy díky

Předmět Autor Datum
Jsem první? Takže z hlavy: <?php foreach (glob("*.mp3") as $filename) { echo "<a href="$filename">…
Flash_Gordon 04.09.2017 17:42
Flash_Gordon
Parse error: syntax error, unexpected '$filename' (T_VARIABLE), expecting ',' or ';' in díky
Víťa 04.09.2017 19:00
Víťa
Zkusil bych: echo "<a href=\"$filename\">$filename</a><br />";
Wikan 04.09.2017 19:12
Wikan
Už se odkazy vytvářejí ale bohužel když na to kliknu tak Stránka nebyla nalezena. Zkontrolujte zda n…
Víťa 04.09.2017 19:31
Víťa
Tak zřejmě odkazy na soubory neodpovídají skutečnému umístění.
Wikan 04.09.2017 20:28
Wikan
Ono to funguje, ale musí být to mp3 ve stejné složce, jako je ten php soubor. Anebo máš ty soubory s…
IQ37 04.09.2017 21:02
IQ37
Už jo funguje to ale jen v polovice tento odkaz funguje linka40917.mp3 ale odkaz linka50917#.mp3 ne…
Víťa 05.09.2017 17:04
Víťa
Znak # má v URL speciální význam, takže je potřeba ho nahrazovat za %23. http://php.net/manual/en/fu…
Wikan 05.09.2017 17:07
Wikan
Už jsem to napravil už to funguje prostě do adresního řádku dám místo # tak dám %23 a je to . díky
Víťa 05.09.2017 17:25
Víťa
To jako ručně?
Wikan 05.09.2017 17:28
Wikan
Ano ručně jen nesmím to zapomenout %23 :-D, nebo při vytváření jména souboru dát nějaký jiný znak.
Víťa 05.09.2017 17:35
Víťa
Jasně, proč to dělat jednoduše, když to jde dělat velmi složitě.
Wikan 05.09.2017 18:03
Wikan
Rozhodl jsem s tým něco udělat aby to nebylo komplikované jak píšeš, tak jaký znak tam dát aby to ni…
Víťa 13.09.2017 17:15
Víťa
Znak si tam nech jaký chceš, ale je potřeba ten název souboru správně ošetřit. Jak to udělat, je tu…
Wikan 13.09.2017 17:21
Wikan
Opraveno díky:beer:
Víťa 13.09.2017 17:36
Víťa
Úplne po správnosti by ste mali dynamické texty kódovať podľa toho, kde ich používate. Ak napríklad…
moose 05.09.2017 18:29
moose
A ještě jednu věc bych potřeboval a to jak to po kliknutí stáhnout ? díky
Víťa 13.09.2017 20:04
Víťa
Malo by fungovať použitie download atribútu: echo '<a href="' . htmlspecialchars(rawurlencode($file… poslední
moose 13.09.2017 21:56
moose

Ono to funguje, ale musí být to mp3 ve stejné složce, jako je ten php soubor.
Anebo máš ty soubory s diakritikou (viz. obrázek). První dva fungují, třetí háže chybu s cestou.
[79605-screenshot-localhost-2017-09-04-png]

The requested URL /vytvoreni-odkazu-file/04 - The Acoustic��als - No X.mp3 was not found on this server.

Ještě je možnost, že používáš nějaký exotický prohlížeč, který nějak komolí ty odkazy.

Úplne po správnosti by ste mali dynamické texty kódovať podľa toho, kde ich používate. Ak napríklad chcete použiť názov súboru v URL, mal by byť zakódovaný pomocou rawurlencode. A všetko, čo má byť použité ako text v HTML, by malo byť zakódované pomocou htmlspecialchars.

echo '<a href="' . htmlspecialchars(rawurlencode($filename)) . '">' . htmlspecialchars($filename) . '</a><br />';

Zpět do poradny Odpovědět na původní otázku Nahoru