---
title: "Söka värde i sträng"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/104338-söka-värde-i-sträng"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "ironhead"
published: "2004-05-25T21:25:53.000Z"
updated: "2004-05-27T11:49:49.000Z"
replies: 3
views: 229
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/104338-söka-värde-i-sträng"
---

# Söka värde i sträng

## #1 — ironhead, 2004-05-25T21:25Z

Hej! Jag har ett problem med att jag inte vet hur jag ska lyckas söka åt en sträng i en text från mySQLdb:n och infoga en text efter den strängen

tex:

Jag har en text som ser ut såhär:

```
Hej!
----------------------------------------
svejs!
----------------------------------------
alla
----------------------------------------
roliga
----------------------------------------
```

 

då vill jag alltså söka reda på den näst sista streckade linjen och infoga en text efter den... tex:

```
Hej!
----------------------------------------
svejs!
----------------------------------------
alla
----------------------------------------
(här vill jag ha min text)
roliga
----------------------------------------
```

 

Hur i hela friden ska man lyckas med det?
ps. Alla streck är lika långa dvs. 40 st (-) minustecken

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

## #2 — Matte, 2004-05-25T21:46Z

Testa med:

```php
$linje = str_repeat('-', 40);

$new = "Ny text\n";

$pattern = "/((.*?{$linje}\\s*)+)(.*?{$linje}\\s*)$/s";

$text = preg_replace($pattern, "$1$new$3", $text);
```

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

## #3 — lunne82, 2004-05-25T22:11Z

Om du inte ska ersätta texten utan lägga till kan du prova göra nåt sånt här.

Är det radbrytning efter varje linje? Annars får du ta bort den, använder radbrytning i exemplet.

```
$str = Texten från databasen;
$spl = "----------------------------------------\n";
$hit = Strängen som du söker efter och ska utöka;

$rows = explode($spl, $str);
foreach ( $rows as $v ) {
  if ($v == $hit) {
    // Här lägger du in texten å sparar det i $val, typ:
    $val = "mer text" . $v;
  }else{
    $val = $v;
  }
  $new[] = $val;
}

$str2 = implode($spl, $new);

// Lägg tillbaka $str2 i databasen
```

Om du däremot inte vet vad det är för text du ska utöka utan det alltid är den näst sista raden med streck du letar efter kan du prova:

```
$str = Texten från databasen;
$spl = "----------------------------------------\n";
$new_text = "(här vill jag ha min text)\n";

$rows = explode($spl, $str);
$num = count($rows);
$rows[($num - 2)] = $new_text . $rows[($num - 2)];

$str = implode($spl, $rows);
```

OT: Varför har de gjort så man inte längre kan använda PHP-taggen i forumet? Jag kan då inte använda den, får inga radbrytningar...

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

## #4 — ironhead, 2004-05-27T11:49Z

lunne82: Det funkade juh kanonbra...tack!

matte: Fick inte ditt att fungera...den skrev inte ut nåt...

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

---

Tråden på webben: https://www.webforum.nu/amne/php/104338-söka-värde-i-sträng
