---
title: "preg_replace"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/104387-preg-replace"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "kobranturre"
published: "2004-05-26T14:22:02.000Z"
updated: "2004-05-26T20:02:18.000Z"
replies: 9
views: 357
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/104387-preg-replace"
---

# preg_replace

## #1 — kobranturre, 2004-05-26T14:22Z

Hej jag skulle behöva hjälp med en preg_replace kod 

Här är funktionen och om ni skulle kunna hjälpa mig med preg så är det bra (kan inte preg koderna)

Här är koden som sparar värdena i textfilen, så att ni får inblick i hur det ser ut i textkoden

```php
function ban(){

$msg = $_GET['ip'] . "|\n";

$fp = fopen("ban.txt","r+");

  fwrite($fp, $msg);

fclose($fp);

header("Location: admin.php");
exit;
}
```

Och här är funktionen som ska ta bort ett visst ip (som finns i $\_GET\['ip'\])

```php
//Ta bort ban
function TaBortBan($i){
$fp = fopen('ban.txt', 'r');

   $content = fread($fp, filesize('gastbok.txt'));

   fclose($fp);
 
   $content = preg_replace("PREG KODEN", "", $content);
 
   $fp = fopen('ban.txt', 'w');

   fwrite($fp, $content);

   fclose($fp);

   header("Location: admin.php");

   exit;
 
}
```

Har provat 

$content = preg_replace("/^{$\_GET\['ip'\]}.\*?\\n/m", "", $content);

Men problemet är att den tar bort alla ip'n d.v.s. tömmer hela textfile

Tack på förhand

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

## #2 — lunne82, 2004-05-26T16:44Z

Är det medvetet som du öppnar ban.txt och läser in storleken av guestbook.txt? 

```
$fp = fopen('ban.txt', 'r');
$content = fread($fp, filesize('gastbok.txt'));
```

Hur som helst. Om du inte är i behov av mönsterpassning ska du använda str_replace() istället. Borde bli enklare då. 

> **PHP Manualen skrev:**
>
> If you don't need fancy replacing rules (like regular expressions), you should always use this function instead of ereg_replace() or preg_replace().

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

## #3 — kobranturre, 2004-05-26T17:19Z

Har nu

```php
//Ta bort ban
function TaBortBan($i){
$fp = fopen('ban.txt', 'r');

   $content = fread($fp, filesize('gastbok.txt'));

   fclose($fp);

   $ip = $_GET['ip'];
 
   $content = str_replace($ip, "", $content);
 
   $fp = fopen('ban.txt', 'w');

   fwrite($fp, $content);

   fclose($fp);

   header("Location: admin.php");

   exit;
}
```

Men den vägrar ta bort ip't...jag vet att den inte tar bort \|\\n men detta är för att testa...Har testat massor med gånger och den tar bort \|\\n men den vägrar ta bort ip't...Varför?

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

## #4 — lunne82, 2004-05-26T17:23Z

Du kan ju börja med att byta ut
$content = fread($fp, filesize('gastbok.txt'));
mot
$content = fread($fp, filesize('ban.txt'));

funkar fortfarande inte?

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

## #5 — kobranturre, 2004-05-26T17:45Z

nope, den tar bara bort \|\\n

```php
function TaBortBan($i){
$fp = fopen('ban.txt', 'r');

   $content = fread($fp, filesize('ban.txt'));

   fclose($fp);

   $ip = $_GET['ip'];
 
   $content = str_replace("{$ip}|\n", "", $content);
 
   $fp = fopen('ban.txt', 'w');

   fwrite($fp, $content);

   fclose($fp);

   header("Location: admin.php");

   exit;
 
}
```

har även provat 

 $content = str_replace($ip."\|\\n", "", $content);

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

## #6 — lunne82, 2004-05-26T18:07Z

Tycker inte det skulle behövas, men testa byta
$ip = $\_GET\['ip'\];
mot
$ip = strip_slashes($\_GET\['ip'\]);

Annars kan du skriva
var_dump($\_GET);
exit;

som första rad i funktionen TaBortBan() för att testa vad det är för värden, och vilken typ de är, i $\_GET när du anropar den. På så sätt kan du se vad som finns i index 'ip' och själv kolla om det stämmer eller om det är fel någon annan stans.

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

## #7 — kobranturre, 2004-05-26T18:07Z

fixade med

```php
$content = preg_replace("/^{$_GET['i']}.*?\n/m", "", $content);
```

tack ändå :)

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

## #8 — lunne82, 2004-05-26T18:09Z

> **PHP Manualen skrev:**
>
> If you don't need fancy replacing rules (like regular expressions), you should always use this function instead of ereg_replace() or preg_replace().

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

## #9 — kobranturre, 2004-05-26T18:25Z

> **lunne82 skrev:**
>
> > **PHP Manualen skrev:**
> >
> > If you don't need fancy replacing rules (like regular expressions), you should always use this function instead of ereg_replace() or preg_replace().

 :birp  :birp 

Bara jag fick en lösning så ;)

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

## #10 — lunne82, 2004-05-26T20:02Z

Steg 1: Få det att funka.
Steg 2: Optimera.

:birp

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

---

Tråden på webben: https://www.webforum.nu/amne/php/104387-preg-replace
