---
title: "Behöver hjälp med en funktion"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/123196-behöver-hjälp-med-en-funktion"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "shun"
published: "2005-02-24T16:22:02.000Z"
updated: "2005-02-28T12:21:10.000Z"
replies: 1
views: 275
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/123196-behöver-hjälp-med-en-funktion"
---

# Behöver hjälp med en funktion

## #1 — shun, 2005-02-24T16:22Z

I ett HTML-dokument anger jag

```
<abbr title="kalorier">kcal</abbr>
```

men vill gärna fixa ett script som gör om detta till

```
<abbr title="kalorier"><span class="abbr" title="kalorier">kcal</span</abbr>
```

i och med IEs behandling av abbr. Helst av allt skulle jag vilja använda mig av en funktion som letar efter förkortningar i en lista och ersätter t.ex. kcal med

```
<abbr title="kalorier"><span class="abbr" title="kalorier">kcal</span</abbr>
```

Skulle det kunna fungera tror ni?  :) Ifall det går att lösa med en funktion önskar jag en liten, liten förklaring om vad man ska skriva i PHP-dokumentet för att infoga funktionen..

edit- Antar att jag måste använda mig av preg_replace eller str_replace samt en array med mina förkortningar/utskrivna ord i. Jag använder mig inte av en databas utan inkluderar alla filer i index.php, kan man leta efter förkortningen på en hel sida utan att det är en variabel?

edit2- Ändrade rubriken till något mer tilltalande för att någon förhoppningsvis tittar in.. :/

Permalänk: https://www.webforum.nu/p/123196

## #2 — jOOOL, 2005-02-28T12:21Z

DU kan använda dig av regjulära uttryck så här:

\<?php
$test_string = "\<abbr title=\\"kalorier\\"\>kcal\</abbr\>"; # en test grej bara

\### skapa arrays med vad som ska ersättas och med vad
$patterns\[0\] = "\|\<abbr title=\\"(.\*?)\\"\>(.\*?)\</abbr\>\|s";
$replacements\[0\] = "\<abbr title=\\"\\$1\\"\>\<span class=\\"abbr\\" title=\\"\\$1\\"\>\\$2\</abbr\>";

\### sortera arraysen för säkerhetsskull 
\#( i fall du använder flera olika mönster och replacements)
ksort($patterns);
ksort($replacements);
 
// utför ersättandet
$test_string = preg_replace($patterns, $replacements, $test_string);
\## här har du en ny sträng
echo "\<br /\>Ny stärng $test_string";
?\>

för mer info om hur detta fungerear hänvisar jag till en tutorial jag hittat. <http://www.phpfreaks.com/tutorials/123/2.php>

Om du har två uttryck skulle du kunna göra en funktion så här

\<?php
function byt_ut($ord,$title,$string) {
\### skapa mönstret och vad som ska bytas ut
$pattern = "\|".$ord."\|s";
$replacement = "\<abbr title=\\"".$title."\\"\>\<span class=\\"abbr\\" title=\\"".$title."\\"\>$ord\</abbr\>";
 
// utför ersättandet
$string = preg_replace($pattern, $replacement, $string);
return $string;
}

\# sedan anropar du funktionen så här
echo byt_ut('kacl','kalorier','Jag fick i mig 1000 kacl till frukost');
?\>

Permalänk: https://www.webforum.nu/p/1563785

---

Tråden på webben: https://www.webforum.nu/amne/php/123196-behöver-hjälp-med-en-funktion
