webForumDet fria alternativet

dela upp en text-post i två delar

PHP

6 svar · 277 visningar · startad av kittlos

Medlem sedan sep. 2002205 inlägg
Frågan#1

Jag har en post i databasen som består av en bilds sökväg och filnamn. Nu skulle jag vilja ha sökvägen i en separat post, och behöver nu en kod för en snurra som delar upp dem. Tänkte använda str_replace eller ereg_replace.

nu ser posterna ut så här:
bilder/genremapp1/filnamn.jpg

genremappen har 6 olika namn som är olika långa, så man kan inte räkna tecken från vänster. Ej heller från höger då filnamnet kan variera i längd. Däremot är det alltid efter bindestreck nummer två som filnamnet börjar. Kan man få den att klippa efter andra snedstrecket och hur formulerar jag det i så fall?

Medlem sedan aug. 2001153 inlägg
#2

Borde man inte bara kunna explode, poppa o sedan implode.
Typ nåt i denna stilen...

$delar = explode("/",$dintextfrandatabasen);
$fil = $delar[sizeof($delar)-1];
$path = implode("/", array_pop($delar));

Edit:

$fil = end($delar) kanske vore bättre.

Medlem sedan sep. 2002205 inlägg
#3

jag är inte säker på att förstår fullt ut vad som händer i ditt exempel. Kan du möjligen utveckla så vore jag tacksam.

Medlem sedan aug. 2001153 inlägg
#4

Tror inte mitt förslag är spec. bra :)

Här har du ett exempel på bättre kod... och som även följer det du föreslog.

$text = "bilder/genremapp1/filnamn.jpg";
$file_name = substr(strrchr($text, "/"), 1);
$file_path = substr($text,0,(strlen($text)-strlen($file_name)));

strrchr söker bakifrån efter / och hittar filnamnet....
katalogen får jag ut genom klippa bort lika många tecken som filnamnet var.

Medlem sedan sep. 2002205 inlägg
#5

lyckades faktiskt med ditt första förslag, även om jag fick lägga till ett / på slutet av sökvägen.
Däremot gick det inte att köra array_pop direkt i implode-satsen, det fick jag göra separat först.

Ska testa ditt andra förslag också, tack!

Medlem sedan aug. 20002 975 inlägg
#6

En annan variant:

$path = "bilder/genremapp1/filnamn.jpg";

$filename = basename($path);

$dir = dirname($path)."/";

echo "Filnamn: $filename<br>";
echo "Katalog: $dir";
Medlem sedan sep. 2002205 inlägg
#7

Matte: Coolt. Php upphör aldrig att förvåna med sina klockrena funktioner! Precis vad jag ville ha!

264 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
131 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)