Laatste tekens verwijderen
Beste PHP-hulpers,
Voor een project wil ik de laatste 4 tekens van iets dat ik uit de database haal verwijderen. Hierbij gaat het om titels voor foto's (.jpg verwijderen).
Ik had dit al toegepast op de huidige pagina:
En dit werkt prima, echter als ik het probeer op iets uit de database heeft die er meer moeite mee.
Ik probeerde de volgende dingen:
&
Echter blijk geen van beide te werken.
Iemand hier tips, suggesties of een oplossing voor?
Voor een project wil ik de laatste 4 tekens van iets dat ik uit de database haal verwijderen. Hierbij gaat het om titels voor foto's (.jpg verwijderen).
Ik had dit al toegepast op de huidige pagina:
Code (php)
En dit werkt prima, echter als ik het probeer op iets uit de database heeft die er meer moeite mee.
Ik probeerde de volgende dingen:
Code (php)
&
Code (php)
Echter blijk geen van beide te werken.
Iemand hier tips, suggesties of een oplossing voor?
Gewijzigd op 24/10/2012 15:53:13 door Ronny -
Welke wil je nou?
return substr($titel, 0, -4);
return substr($titel, 1, -4);
$titelNieuw = deleteChars(trim($c_row["titel"]));
return substr($titel, 0, -4);
return substr($titel, 1, -4);
$titelNieuw = deleteChars(trim($c_row["titel"]));
Excuses, bij de laatste moest het ook een 0 zijn.
Heb het nu geprobeerd op verschillende manier met de trim functie die jij postte.
&
Hieribj crasht mijn pagina echter volledig met de volgende error:
Heb het nu geprobeerd op verschillende manier met de trim functie die jij postte.
Code (php)
&
Code (php)
Hieribj crasht mijn pagina echter volledig met de volgende error:
Code (php)
Gewijzigd op 24/10/2012 16:10:00 door Ronny -
Cannot redeclare deleteChars()
Je kan een function slechts één keer declareren.
Aanroepen echter mag vaker.
Je kan een function slechts één keer declareren.
Aanroepen echter mag vaker.
Maar je wil dus een extentie van een plaatje afhalen? Als de extentie .jpg is is deze 4 karakters maar als het een .jpeg is zijn het 5 karakters hoe wil je dit dan aanpakken?
Zie bovenstaande reactie. Ik was net wat te laat met het posten.
Daarnaast las ik dat het probleem optreed bij het gene dat uit de database komt. Wat je met de functie doet is elke keer de laatste 4 karakters strippen.
Bijvoorbeeld:
Langetitel.jpg > Langetitel > Langet etc
Ik zou hier kiezen voor een andere wijze van het strippen van karakters.
Bijvoorbeeld het gebruik van explode met als delimiter een .
Daarnaast las ik dat het probleem optreed bij het gene dat uit de database komt. Wat je met de functie doet is elke keer de laatste 4 karakters strippen.
Bijvoorbeeld:
Langetitel.jpg > Langetitel > Langet etc
Ik zou hier kiezen voor een andere wijze van het strippen van karakters.
Bijvoorbeeld het gebruik van explode met als delimiter een .
Gewijzigd op 24/10/2012 16:21:13 door Michel Falke
Maar Michel als je een image hebt met de naam image.test.jpg dan haal je nog steedts niet het juiste eraf.
Als je een axtentie will strippen raad ik je het volgende aan.
Je krijgt nu de naam van de image terug ook al bevat deze meerdere punten.
Als je een axtentie will strippen raad ik je het volgende aan.
Code (php)
1
2
3
4
2
3
4
<?php
$imageExploded = explode('.', $titel);
$imageName = implode('.', array_slice($imageExploded , 0, -1));
?>
$imageExploded = explode('.', $titel);
$imageName = implode('.', array_slice($imageExploded , 0, -1));
?>
Je krijgt nu de naam van de image terug ook al bevat deze meerdere punten.
Rick van Riel op 24/10/2012 16:26:31:
Je krijgt nu de naam van de image terug ook al bevat deze meerdere punten.
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$titel = 'image.test.jpg';
$imageExploded = explode('.', $titel);
$imageName = implode('.', array_slice($imageExploded , 0, -1));
echo $imageName;
?>
$titel = 'image.test.jpg';
$imageExploded = explode('.', $titel);
$imageName = implode('.', array_slice($imageExploded , 0, -1));
echo $imageName;
?>
Geeft image.test
Sorry, beetje overbodige post.
Gewijzigd op 24/10/2012 16:38:52 door - SanThe -
In het geval dat je de laatste wilt strippen heb je wel 100 manieren om dit met een explode te doen. Omslachtig en snel. Ik zou het op de volgende manier doen:
Dit is puur omdat ik van overzicht hou en stapsgewijs wil zien wat er gaande is.
Code (php)
Dit is puur omdat ik van overzicht hou en stapsgewijs wil zien wat er gaande is.
Gewijzigd op 24/10/2012 16:37:05 door Michel Falke
Hartstikke bedankt voor jullie reacties!
Het is me nu gelukt met de volgende code:
Ik heb dit getest met .jpeg .png & .jpg bestanden.
Werkte allemaal, bedankt! :)
Het is me nu gelukt met de volgende code:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$titel = $c_row["titel"];
$imageExploded = explode('.', $titel);
$imageName = implode('.', array_slice($imageExploded , 0, -1));
?>
$titel = $c_row["titel"];
$imageExploded = explode('.', $titel);
$imageName = implode('.', array_slice($imageExploded , 0, -1));
?>
Ik heb dit getest met .jpeg .png & .jpg bestanden.
Werkte allemaal, bedankt! :)
Jammer dat ook dit is dubbelgepost op een ander forum...
http://www.html-site.nl/forum/11_28705_0.html
http://www.html-site.nl/forum/11_28705_0.html
Maakt dat veel uit dan?
Bedoel naar mijn idee maakt dat niet uit, jullie hebben er geen last van en ik leer er meer mee. Heb er geen verkeerde bedoelingen mee hoor..
Bedoel naar mijn idee maakt dat niet uit, jullie hebben er geen last van en ik leer er meer mee. Heb er geen verkeerde bedoelingen mee hoor..
end(explode(".", $string)); veel efficiënter en korter maar beetje lelijk zonder checks
Gewijzigd op 24/10/2012 20:40:11 door Jaron T
Ronny - op 24/10/2012 20:14:37:
Maakt dat veel uit dan?
Bedoel naar mijn idee maakt dat niet uit, jullie hebben er geen last van en ik leer er meer mee. Heb er geen verkeerde bedoelingen mee hoor..
Bedoel naar mijn idee maakt dat niet uit, jullie hebben er geen last van en ik leer er meer mee. Heb er geen verkeerde bedoelingen mee hoor..
Hoe zou jij het vinden als ik jou iets vraag te doen en, zonder het jou te vertellen, ook aan bv. 10 anderen. Dan ben jij druk voor mij, terwijl het misschien niet nodig is. Hoe zou jij dat vinden?
Algemeen: het maakt in zoverre iets uit dat mensen hier mogelijk een hele uitgebreide reactie neer zetten, terwijl die ergens anders misschien ook al staat. Of dat er op een ander forum meer/andere informatie staat, die relevant blijkt voor de oplossing. Het zou ook niet de 1e keer zijn dat iemand op tig fora zijn/haar vraag plaatst en geen terugkoppeling geeft als een oplossing is gevonden.
Dat je op meerdere plaatsen een vraag stelt, is op zich niet zo erg. Maar wees daarin open en vermeld dat. Kunnen wij ook kijken of het antwoord al is gegeven/meer info bekend is.




