En ymmärrä mitä järkeä kirjoittaa basenamea jos tuo polku ja tiedostonimi täytyy kirjoittaa, eikä se itse hae sitä. Alla oleva malli https://www.php.net/basename
Basename on tietääkseni yleiskäyttöinen komento, eikä mikään suora "anna nykyisen tiedoston nimi"-juttu. Jos haluat nykyisen tiedoston basenamen, anna sille parametriksi nykyisen tiedoston koko nimi.
Itse tarvitsen tuota kuvagalleriassani, koska halusin gallerian näyttämään tiedoston nimen, ei sen koko polkua.
Draizille, jos haluat päätteen pois niin.
<?php
$path = "/home/httpd/html/index.php";
$file = basename($path); // $file is set to "index.php"
$file = basename($path, ".php"); // $file is set to "index"
?>
No mikähän tarkoitus tuolla viestillä oli? Ei se pääte tuolla pois lähde ellei jo valmiiksi tiedä sitä päätettä. substr ja strrposia, vaikka silläkin menee pieleen jos päätteessä on kaksi pistettä, .tar.gz tms~
peg kirjoitti:
En ymmärrä mitä järkeä kirjoittaa basenamea jos tuo polku
ja tiedostonimi täytyy kirjoittaa, eikä se itse hae sitä.
Vaikka esimerkiksi jos tiedostojen nimet haetaan ohjelmallisesti ja halutaan tulostaa vain se tiedostonimi, eikä koko polkua.
ajv kirjoitti:
peg kirjoitti:
En ymmärrä mitä järkeä kirjoittaa basenamea jos tuo polku
ja tiedostonimi täytyy kirjoittaa, eikä se itse hae sitä.Vaikka esimerkiksi jos tiedostojen nimet haetaan ohjelmallisesti ja halutaan tulostaa vain se tiedostonimi, eikä koko polkua.
Tuota juuri tarkoitin.
peg kirjoitti:
Draizille, jos haluat päätteen pois niin.
<?php
$path = "/home/httpd/html/index.php";
$file = basename($path); // $file is set to "index.php"
$file = basename($path, ".php"); // $file is set to "index"
?>
Ei ole mitään tarvetta sille, ja eikö minun pitänyt neuvoa sinua eikä sinun minua? :)
tsuriga kirjoitti:
Ei se pääte tuolla pois lähde ellei jo valmiiksi tiedä sitä päätettä. substr ja strrposia, vaikka silläkin menee pieleen jos päätteessä on kaksi pistettä, .tar.gz tms~
Entäs strpos() funktiolla?
Koodi:
Ei voi tietää. Entäpä kernel-2.6.12.tar.bz2.bak, kun pitäisi osata pätkäistä keskimmäiseltä pisteeltä?
Kiitos AJV esimerkkisi valaisi asian. PHP:n oma esimerkki
on vähän köyhä.
<?php
$path = "/home/httpd/html/index.php";
$file = basename($path); // $file is set to "index.php"
$file = basename($path, ".php"); // $file is set to "index"
?>
Metabolix kirjoitti:
Ei voi tietää. Entäpä kernel-2.6.12.tar.bz2.bak, kun pitäisi osata pätkäistä keskimmäiseltä pisteeltä?
Niijoo, sit varmaan pitäs laittaa rajoitus kolmeen pisteeseen, tai sitten kirjoittaa kaikki maholliset tiedostotyypit taulukkoon, ja hoitaa homman sitä kautta, mutta tuo ei ole järkevää.
Mietin että onko se niin vakavaa jos näkyy esim "seppo.tar" (.gz poistettu) eikä "seppo"
Saman tuo php:n manuaalin esimerkki kertoo ku ajv:ki, eri kielellä vaan. Noita monen pisteen tiedostotyyppejä ei taida ihan älytöntä määrää olla, joten ne voisi taulukoida.
Aihe on jo aika vanha, joten et voi enää vastata siihen.