Gå til innhold

Acronym script til webside


Anbefalte innlegg

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
Videoannonse
Annonse

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

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

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

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

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

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 av LateFot
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...