preg_replace na preg_replace_callback

preg_replace na preg_replace_callback
CA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 60
1

Witajcie koledzy i koleżanki,

mam problem ze zmianą preg_replace na preg_replace_callback po aktualizacji wersji PHP. Kompletnie nie ogarniam wyrażeń regularnych i nie bardzo wiem w jaki sposób mogę to zrobić (mimo, że zaliczyłem m.in. posty z naszego forum jak i ze stackoverflow). Siedzę już przy tym od 8:00 i jestem załamana :P

Stary kod wygląda tak:

Kopiuj
preg_replace('#\{([a-z0-9\-_]*?)\}#Ssie', '( ( isset($parseArray[\'\1\']) ) ? $parseArray[\'\1\'] : \'\' );', file_get_contents($filepath))

oraz

Kopiuj
preg_replace('/\s+/', '', strtoupper($_POST['set_uni_gamename'])).'_CK',

pomoże ktoś? Będę bardzo wdzięczna.

jurek1980
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3581
3

Do poprawy jest tylko pierwsze wyrażenie, bo tylko ono zawiera deprecated \e
Zobacz czy nie zadziała coś takiego:

Kopiuj
preg_replace_callback ( '#\{([a-z0-9\-_]*?)\}#Ssi' , function ($matches) use ($parseArray) {
    return ( ( isset ( $parseArray[$matches[1]] ) ) ? $parseArray[$matches[1]] : '' );
} , file_get_contents($filepath) );
CA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 60
0

Dziękuję, działa! :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.