Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] preg_replace - zapewne banalny problem
Forum PHP.pl > Forum > Przedszkole
Ziels
Witam!

Chcę w kodzie typu
  1. <?php
  2. $strings = '[blabla] coś innego [coś] coś jeszcze innego';
  3. ?>

Wyciąć wszystko oprócz zawartości pomiędzy []
Stosuje do tego preg_replace jednak takie coś:
  1. <?php
  2. $strings = preg_replace("#[^([(.*?)])]#si", '', $strings);
  3. ?>

Za bardzo działać nie chce (wywala zupełnie coś innego niż powinno) - wie ktoś może czemu?
JaRoPHP
Pozwolę sobie na użycie funkcji ereg_replace smile.gif:

  1. <?php
  2. $strings = ereg_replace('[[[:alnum:]]*]', '', $strings);
  3. ?>

Przyjąłem, że w nawiasie kwadratowym są znaki alfanumeryczne, jeśli mogą być również inne, to należy to odrobinę zmodyfikować.
dawhol
Robilem cos podobnego wczoraj winksmiley.jpg i tez mi nie wychodzilo ale doszedlem wkoncu do tego winksmiley.jpg masz tutaj moj skrypcik.
  1. <?php
  2. $szukaj = array ('/</',
  3.  '/" //',
  4.  '/"//');
  5.  
  6. $zamien = ' ';
  7.  
  8. $text = preg_replace($szukaj, $zamien,$tablica);
  9. ?>


Ja akurat tutaj przeszukiwalem tablice i "usuwałem" kilka rzeczy jezeli chesz usunac kilka znakow nie stajacych normalnie obok siebie to zrob tablice tak jak ja mam przy zmiennej $szukaj z tym ze w kazdej czesci tablicy przy znakach musisz po pierwszyszym i przed ostatim apostrofem dac / bo inaczej nie zadziala ;P
Sedziwoj
  1. <?php
  2. $strings = preg_replace("#[^([(.*?)])]#si", '', $strings);
  3. ?>

zamiast # powinno być /
  1. <?php
  2. $strings = preg_replace("/([(.*)])/si", '', $strings);
  3. ?>

tylko, że .* 'zjada' wszystko.
  1. <?php
  2. $strings = preg_replace("/([[[:alnum:]]*])/si", '', $strings);
  3. ?>

nie łapie polskich znaczków (a właściwie to tylko a-z,A-Z,0-9)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.