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?
Annonceindlæg fra Barco
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."
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(...)
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?
09. september 2006 - 15:37
#4
Du kan prøve at kigge på $_SERVER['PHP_SELF'] e.a.
09. september 2006 - 15:37
#5
evt. basename($_SERVER['PHP_SELF'])
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
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 ?
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?
09. september 2006 - 16:38
#9
Ahh - overså lige @15:51:30. Så er den god nok med ucfirst()
09. september 2006 - 16:39
#10
Hvad er "tøsser" forresten? Har det nogen relation til "tøser"? ;)
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.
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 ?
09. september 2006 - 17:15
#13
Ups... brugte lige min brors konto. (Auto login gå VÆK)
09. september 2006 - 17:34
#14
Nu virker det: ændrede $navn = str_ireplace($from, $to, $filename); til $navn = str_replace($from, $to, $filename);
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?
09. september 2006 - 18:32
#16
@17:34:05 > Jeg smider et svar så.
09. september 2006 - 18:32
#17
Hov
Vi tilbyder markedets bedste kurser inden for webudvikling