
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
Jsem první?
Takže z hlavy:
Parse error: syntax error, unexpected '$filename' (T_VARIABLE), expecting ',' or ';' in
díky
Zkusil bych:
echo "<a href=\"$filename\">$filename</a><br />";
Už se odkazy vytvářejí ale bohužel když na to kliknu tak Stránka nebyla nalezena. Zkontrolujte zda nemáte v adrese překlep. ale soubory tam jsou to vím díky
Tak zřejmě odkazy na soubory neodpovídají skutečnému umístění.
Ono to funguje, ale musí být to mp3 ve stejné složce, jako je ten php soubor.
![[79605-screenshot-localhost-2017-09-04-png]](https://pc.poradna.net/files/79605-screenshot-localhost-2017-09-04-png)
Anebo máš ty soubory s diakritikou (viz. obrázek). První dva fungují, třetí háže chybu s cestou.
Ještě je možnost, že používáš nějaký exotický prohlížeč, který nějak komolí ty odkazy.
Už jo funguje to ale jen v polovice tento odkaz funguje linka40917.mp3 ale odkaz linka50917#.mp3 ne že by znak # dělal bordel ? díky
Znak # má v URL speciální význam, takže je potřeba ho nahrazovat za %23.
http://php.net/manual/en/function.urlencode.php
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
To jako ručně?
Ano ručně jen nesmím to zapomenout %23
, nebo při vytváření jména souboru dát nějaký jiný znak.
Jasně, proč to dělat jednoduše, když to jde dělat velmi složitě.
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čemu nevadilo? díky
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 už uvedeno.
Opraveno díky
Ú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.
A ještě jednu věc bych potřeboval a to jak to po kliknutí stáhnout ? díky
Malo by fungovať použitie download atribútu: