Flanger Skrevet 16. april 2005 Del Skrevet 16. april 2005 Hei, Jeg leter etter et script som gjør at jeg slipper å skrive f.eks: <acronym title="laughing out loud">lol</acronym> ..hver gang jeg skriver forkortelsen. Skulle gått an å lagt inn mange forkortelser i en fil som jeg liksom bare kunne 'henvise' til i selve php-filen(den med html-koden). Håper dere forstår hva jeg mener... Har lett ganske lenge etter dette men har sålangt ikke funnet / forstått det helt. Eksempel: Noe jeg kanskje kan bruke men ikke forstår.. Lenke til kommentar
BlueEAGLE Skrevet 20. april 2005 Del Skrevet 20. april 2005 Altså det du vil gjøre er å gå igjennom posten for å finne forkortelser og lage dem i en annen stil (evt lenke)? Da lager du en matrise med definisjoner som det er gjort i eksemplet deretter så går du enten igjennom teksten og sjekker om hvert ord er en forkortelse eller så går du igjennom listen av forkortelser og ser om du finner en i teksten (det siste er muligens det enkleste. Spørsmålet er jo da hvordan teksten er lagret. Hvis den er lagret i en database så er det greit å bytte ut alle forkortelsene i det du legger teksten inn i databasen istedenfor å sjekke etter forkortelser hver gang du viser teksten. Det vil bare ta tid. Hvis teksten ligger i eksterne filer på filsystemet så kan det være en ide og "konvertere" de slik at forkortelsene blir gjort om slik du vil ha dem. Håper dette hjelper. Lenke til kommentar
Gilbert Skrevet 20. april 2005 Del Skrevet 20. april 2005 Jeg vil vel si at det er bedre å formatere når teksten kommer ut, fordi da kan du i ettertid endre forklaringer, legge til forkortelser og så videre. Det du kanskje er på jakt etter er str_replace() og array :-) Lenke til kommentar
Magnus Holm Skrevet 20. april 2005 Del Skrevet 20. april 2005 Se på denne: <?php $str = str_replace(":)", "<img src=images/smile.gif />", $innhold); $str1 = str_replace(";)", "<img src=images/wink.gif />", $str); $str2 = str_replace(":P", "<img src=images/geip.gif />", $str1); $str3 = str_replace(":D", "<img src=images/biggrin.gif />", $str2); $str4 = str_replace(":/", "<img src=images/sick.gif />", $str3); $smilies = str_replace(":o", "<img src=images/shocked.gif />", $str4); echo $smilies; ?> Hvor $innhold er det som skal endres... Så har jeg et lite spm: Kan man skrive: <?php $innhold = str_replace(":)", "<img src=images/smile.gif />", $innhold); $innhold = str_replace(";)", "<img src=images/wink.gif />", $innhold); $innhold = str_replace(":P", "<img src=images/geip.gif />", $innhold); $innhold = str_replace(":D", "<img src=images/biggrin.gif />", $innhold); $innhold = str_replace(":/", "<img src=images/sick.gif />", $innhold); $innhold = str_replace(":o", "<img src=images/shocked.gif />", $innhold); echo $innhold; ?> Og få samme funksjonen? Lenke til kommentar
dabear Skrevet 20. april 2005 Del Skrevet 20. april 2005 Ja, men hvorfor så vanskelig? <?php $from = array(':)', ';)', ':P' ':D',':/', ':o'); $to = array( '<img src="images/smile.gif" />', '<img src="images/wink.gif" />', '<img src="images/geip.gif" />', '<img src="images/biggrin.gif" />', '<img src="images/sick.gif" />', '<img src="images/shocked.gif" />' ); $innhold = str_replace($from, $to, $innhold); echo $innhold; ?> Lenke til kommentar
Cucum(r) Skrevet 20. april 2005 Del Skrevet 20. april 2005 function smilies($buffer) { $before = array ( ":)", ";)", ":P", ":D", ":/", ":o", ); $replaced = array ( "smile", "wink", "geip", "biggrin", "sick", "shocked", ); return (str_replace($before, '<img src="images/' . $replaced . '.gif" alt="smiley" />', $buffer)); } ob_start("smilies"); Hvis du legger denne kodesnutten helt i toppen av dokumentet ditt vil det endre alle smileys til bilder. Det vil nok medføre litt lenger dokumentlasting, men det er ikke all verden. Lenke til kommentar
Gilbert Skrevet 20. april 2005 Del Skrevet 20. april 2005 Rent praktisk sett når det gjelder str_replace() og arrays: Jeg synes det er litt tungt å endre to forskjellige steder om jeg vil endre noe i smileysrekka mi, særlig når det er to midt inni en laaang rekke. Kan man ikke bruke : -) => <img src="smil.gif"> ? Det gjør alt mer oversiktlig spør du meg. Lenke til kommentar
dabear Skrevet 20. april 2005 Del Skrevet 20. april 2005 Joda,fullt mulig dét. Men nå er det nå slik at str_replace krever tre parametere (fra, til og input), så du må uansett splitte opp arrayet ditt (array_keys og array_values) Lenke til kommentar
LateFot Skrevet 22. april 2005 Del Skrevet 22. april 2005 (endret) har en liten kodesnutt jeg brukte på en shoutbox. preg_replace() er brukt og har bare satt opp 2 arrays, en for listen av forkortelser, og en for selve smillien.. er vel ikke den aller beste løsningen, men den funker. koden: <?php # string to be replaced $string_to_replace_from = 'string som skal byttes :glad: :sur: etc.'; # pattern string $Pattern[0] = "/:glad:/"; // Glad_mr.gif $Pattern[1] = "/:sur:/"; // Ledsen_mr.gif $Pattern[2] = "/:D/"; // XGlad_mr.gif $Pattern[3] = "/:@/"; // Arg_mr.gif $Pattern[4] = "/:p/"; // Glad_tunga_mr.gif $Pattern[5] = "/:besviken:/"; // Besviken_mr.gif $Pattern[6] = "/:S/"; // Forvirad_mr.gif # replacement string $Replace[6] = '<img src="/smilies/Forvirad_mr.gif">'; $Replace[5] = '<img src="/smilies/Besviken_mr.gif">'; $Replace[4] = '<img src="/smilies/Glad_tunga_mr.gif">'; $Replace[3] = '<img src="/smilies/Arg_mr.gif">'; $Replace[2] = '<img src="/smilies/XGlad_mr.gif">'; $Replace[1] = '<img src="/smilies/Ledsen_mr.gif">'; $Replace[0] = '<img src="/smilies/Glad_mr.gif">'; ksort ($Pattern); ksort ($Replace); $replaced_strings = preg_replace ($Pattern, $Replace, $string_to_replace_from); ?> edit: fiksa en skrivefeil Endret 22. april 2005 av LateFot Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå