---
title: "Sök och ersätt/wrappa i MySQL med hjälp av PHP"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/160084-sök-och-ersätt-wrappa-i-mysql-med-hjälp-av-php"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "frippz"
published: "2007-05-09T12:02:54.000Z"
updated: "2007-05-15T13:29:42.000Z"
replies: 10
views: 496
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/160084-sök-och-ersätt-wrappa-i-mysql-med-hjälp-av-php"
---

# Sök och ersätt/wrappa i MySQL med hjälp av PHP

## #1 — frippz, 2007-05-09T12:02Z

Det här var en riktigt krånglig en. Jag har texter i en databas enligt följande:

> @ingress:Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vestibulum aliquet, tortor vel mattis adipiscing, tortor nulla iaculis enim, vitae placerat risus tellus eget risus. Quisque ante. Phasellus pulvinar. Duis aliquam. Nulla semper. Nam semper mauris fermentum eros.
> 
> Vestibulum interdum. Integer pulvinar nisl sed massa. Suspendisse ipsum est, ornare eu, nonummy vitae, blandit quis, diam. Pellentesque posuere neque quis pede. Pellentesque dui. Fusce at justo ut tortor tincidunt pulvinar. Proin vel dolor.

Vad jag vill göra är att söka igenom textens första stycke, ta bort *@ingress*: och sedan wrappa första stycket med en p-tagg. Eftersom detta ska köras in i MySQL så måste SQL-queries göras (troligen *REPLACE();* gissar jag på?). Jag misstänker att man får använda *preg_match_all* och/eller *preg_replace*.

Oerhört tacksam för hjälp!

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

## #2 — stevenet, 2007-05-11T11:59Z

Vill du lösa det helt i SQL, bör frågan flyttas till SQL-forumet.

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

## #3 — frippz, 2007-05-11T12:02Z

Det vill jag inte och jag tror inte att det går heller.

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

## #4 — stevenet, 2007-05-11T12:15Z

Vad menar du med wrappa? Kan du inte skriva hur en text ser ut och hur denna text ska se ut efter uppdatering?

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

## #5 — frippz, 2007-05-11T12:59Z

> **@ingress:**Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vestibulum aliquet, tortor vel mattis adipiscing, tortor nulla iaculis enim, vitae placerat risus tellus eget risus. Quisque ante. Phasellus pulvinar. Duis aliquam. Nulla semper. Nam semper mauris fermentum eros.
> 
> Vestibulum interdum. Integer pulvinar nisl sed massa. Suspendisse ipsum est, ornare eu, nonummy vitae, blandit quis, diam. Pellentesque posuere neque quis pede. Pellentesque dui. Fusce at justo ut tortor tincidunt pulvinar. Proin vel dolor.

Ursäkta svengelskan. Jag menar omsluta. Första stycket är en ingress resultatet ska bli:

> **\<p class="ingress"\>**Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vestibulum aliquet, tortor vel mattis adipiscing, tortor nulla iaculis enim, vitae placerat risus tellus eget risus. Quisque ante. Phasellus pulvinar. Duis aliquam. Nulla semper. Nam semper mauris fermentum eros.**\</p\>**
> 
> Vestibulum interdum. Integer pulvinar nisl sed massa. Suspendisse ipsum est, ornare eu, nonummy vitae, blandit quis, diam. Pellentesque posuere neque quis pede. Pellentesque dui. Fusce at justo ut tortor tincidunt pulvinar. Proin vel dolor.

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

## #6 — aasah, 2007-05-11T17:15Z

Pröva:

```php
//Fixar början
$text = str_replace('@ingress:', '<p class="ingress">', $text);
//Vad har du för tecken vid radslut? newline?
$text = preg_replace('\n', '</p>', $text, 1);
//1:an ser till att bara första newline tecknet ersätts
```

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

## #7 — frippz, 2007-05-11T21:22Z

Tack för svaret aasah! Jag tror inte det finns någon newline utan det är väl en whitespace i MySQL-fältet. Lite osäker på det.

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

## #8 — frippz, 2007-05-15T12:47Z

Nu blev det lite krångligare igen, för jag kom på att jag vill ju även omsluta följande paragrafer med \<p\>\</p\> (dvs. inte \<p class="ingress"\>).

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

## #9 — Matte, 2007-05-15T13:02Z

Är det dubbla radbrytningar som betyder nytt stycke?
Eller vad är det säger att det ska bli ett nytt stycke?

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

## #10 — frippz, 2007-05-15T13:23Z

Ja, om databasen jag jobbar med är konsekvent så ska dubbla \\n betyda nytt stycke.

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

## #11 — Matte, 2007-05-15T13:29Z

Testa då något i stil med:

```php
$text = "<p>" . preg_replace("/(\r\n|\r|\n){2,}/", "</p>\n<p>", trim($text)) . "</p>";

$text = str_replace('<p>@ingress:', '<p class="ingress">', $text);
```

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

---

Tråden på webben: https://www.webforum.nu/amne/php/160084-sök-och-ersätt-wrappa-i-mysql-med-hjälp-av-php
