Avatar billede dorte20 Nybegynder
09. september 2006 - 09:56 Der er 16 kommentarer og
1 løsning

Billedtekst fra filnavn

Hej

Jeg er helt ny i php.

Jeg har en hjemmeside med billeder på, hver billede bliver åbnet på sin egen side f.eks.

Billeder_toesser_paa_tur.php

Under billedet vil jeg gerne have en tekst som skal tage udgangspunkt i filnavnet.

Mit spørgsmål er om det kan lade sig gøre at tage filnavnet og udskrive den som.

Tøsser på tur.

Dvs. uden Billeder_, .php eller _

og så:
aa = å
oe = ø
ae = æ

Nogen der kan hjælpe en nybegynder?
Avatar billede jensgram Nybegynder
09. september 2006 - 10:41 #1
http://dk.php.net/str-replace


$from = array('ae', 'oe', 'aa', 'billeder_', '.php');
$to = array('æ', 'ø', 'å');

$navn = ($from, $to, $navn);


"If search and replace are arrays, then str_replace() takes a value from each array and uses them to do search and replace on subject. If replace has fewer values than search, then an empty string is used for the rest of replacement values."
Avatar billede jensgram Nybegynder
09. september 2006 - 10:43 #2
Hov, glemte underscores - og så skal den evt. være case-insensitive:

$from = array('ae', 'oe', 'aa', '_', 'billeder_', '.php');
$to = array('æ', 'ø', 'å', ' ');

$navn = str_ireplace($from, $to, $navn); // case-sensitive : str_replace(...)
Avatar billede dorte20 Nybegynder
09. september 2006 - 15:20 #3
Har prøvet at få det til at virke, men hvordan henter jeg navnet på filen ind i ovenstående?
Avatar billede jensgram Nybegynder
09. september 2006 - 15:37 #4
Du kan prøve at kigge på $_SERVER['PHP_SELF'] e.a.
Avatar billede jensgram Nybegynder
09. september 2006 - 15:37 #5
evt. basename($_SERVER['PHP_SELF'])
Avatar billede dorte20 Nybegynder
09. september 2006 - 15:51 #6
Ok fandt ud af det, nu mangler jeg bare at lave

tøsser på tur

Til

Tøsser på tur
Avatar billede dorte20 Nybegynder
09. september 2006 - 16:26 #7
Jeg har nu følgende

<?PHP
$filename = substr( $_SERVER["SCRIPT_NAME"], 1 );
$from = array('ae', 'oe', 'aa', '_', 'Billeder', 'php');
$to = array('æ', 'ø', 'å', ' ');
$navn = str_ireplace($from, $to, $filename);
$navn = ucfirst($navn);
echo $navn;
?>

men ucfirst($navn) virker ikke hvorfor ?
Avatar billede jensgram Nybegynder
09. september 2006 - 16:37 #8
Fordi du har et mellemrum som første tegn:

<?PHP
$filename = substr( $_SERVER["SCRIPT_NAME"], 1 );
$from = array('ae', 'oe', 'aa', '_', 'Billeder_', 'php'); // Bemærk "Billeder_"
$to = array('æ', 'ø', 'å', ' ');
$navn = str_ireplace($from, $to, $filename);
$navn = ucfirst($navn);
echo $navn;
?>




... men måske er det ucwords() du leder efter?
Avatar billede jensgram Nybegynder
09. september 2006 - 16:38 #9
Ahh - overså lige @15:51:30. Så er den god nok med ucfirst()
Avatar billede jensgram Nybegynder
09. september 2006 - 16:39 #10
Hvad er "tøsser" forresten? Har det nogen relation til "tøser"? ;)
Avatar billede dragonbook Nybegynder
09. september 2006 - 16:52 #11
Okay der skal stå:

$from = array('ae', 'oe', 'aa', 'billeder_', '_', 'php');
$to = array('æ', 'ø', 'å', '', ' ');

Da billeder_ ikke eksistere hvis _ bliver fjernet først...

Tak for hjælpen, skriv lige et svar.
Avatar billede dragonbook Nybegynder
09. september 2006 - 17:11 #12
Hov nu har jeg lige prøvet at lægge scriptet over på en anden server og der sker der intet! Hvad kan det skyldes ?
Avatar billede dorte20 Nybegynder
09. september 2006 - 17:15 #13
Ups... brugte lige min brors konto. (Auto login gå VÆK)
Avatar billede dorte20 Nybegynder
09. september 2006 - 17:34 #14
Nu virker det:

ændrede $navn = str_ireplace($from, $to, $filename);

til $navn = str_replace($from, $to, $filename);
Avatar billede jensgram Nybegynder
09. september 2006 - 18:31 #15
Ja, vi kan jo gøre sådan her:

<?PHP
$filename = substr( $_SERVER["SCRIPT_NAME"], 1 );
$from = array('ae', 'oe', 'aa', '_', 'Billeder ', 'php'); // Bemærk "Billeder ", da _ er erstattet med mellemrum
$to = array('æ', 'ø', 'å', ' ');
$navn = str_replace($from, $to, $filename); // Nu er vi case-sensitive.
$navn = ucfirst($navn);
echo $navn;
?>


Ang. anden server: Er du sikker på, at $_SERVER["SCRIPT_NAME"] indeholder det ventede?
Avatar billede jensgram Nybegynder
09. september 2006 - 18:32 #16
@17:34:05 > Jeg smider et svar så.
Avatar billede jensgram Nybegynder
09. september 2006 - 18:32 #17
Hov
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester