Mam skrypt, który ma podmieniać znaki w bazie danych, jednak przy okazji skrypt niszczy strukturę bazy danych bo np: przy zamianie '3' na literkę 'ł' przy okazji zamienia wartości ID.
Postanowiłem to rozwiązać wyrażeniami regularnymi tyle, że nie wiem jak zrobić, żeby wyrażenie regularne podmieniane było w zależności od warunku? A może jest jakieś inne lepsze rozwiązanie ? Oto skrypt:

Kod
<?php

$string = file_get_contents('baza.sql');   //pobranie danych z pliku w postaci ciagu


$pattern = '/3/';
$replacement = 'ł';
$podmienione = preg_replace($pattern, $replacement, $string);      

if ($pattern == '/((\d){1})3((\d){1})/') {                         // TO JEST ŹLE!! jesli wyrazenie jest otoczone cyframi to robimy odwrotna podmiane
$pattern1 = '/ł/';
$replacement1 = '3';
$podmienione = preg_replace($pattern1, $replacement1, $string);
}
else {


$handle = fopen('baza1.sql', 'r+');                                       //zapis danych do pliku
if (!$handle) {echo 'Nie moge otworzyć pliku do odczytu i zapisu';}
   else {
   fwrite($handle, $podmienione);
   fclose($handle);
   }
}


?>