c00ler: preg_replace

hallo,
hab ein problem mit regulären ausdrücken:
 $search  = "#<b>(.*)</b>#siU";
 $replace  = "\1";
das geht soweit. allerdings möchte ich jetzt nur nach text suchen, bei dem zwischen den beiden <b> tags "info" steht:
$search  = "#<b>info</b>#siU";
$replace = "true";
aber das geht nicht, obwohl das im quelltext vorkommt. der lädt die ganze zeit nur, stellt aber nix da...
wie muss man das schreiben?

  1. Für feste Texte ohne Platzhalter brauchst du keine regulären Ausdrücke.

    $text = str_replace("<b>info</b>", "true", $text);

    Vieleicht liegt's an Leerzeichen? Grundsätzlich ist deine Regex nämlich völlig in Ordnung. Probier's mal so.

    $text = preg_replace("/<b>\s*info\s*</b>/i", "true", $text);

    1. geht so auch nicht...
      ich brauch das preg_replace weil das mit dem <b> tags nur nen ausschnitt war...ich kann ja mal das ganze posten:
      $search  = "#<tr(.*)>(.*)<td(.*)>(.*)<b>\s*INFO\s*</b>(.*)</td>(.*)<td(.*)>(.*)<small>(.*)</small>(.*)</td>(.*)<td(.*)>(.*)<small>(.*)</small>(.*)</td>(.*)<td(.*)>(.*)<small>(.*)</small>(.*)</td>(.*)<td(.*)>(.*)<small>(.*)</small>(.*)</td>(.*)<td(.*)>(.*)<small>(.*)</small>(.*)</td>(.*)<td(.*)>(.*)<small>(.*)</small>(.*)</td>(.*)<td(.*)>(.*)<small>(.*)</small>(.*)</td>(.*)</tr>#siU";

      $replace  = "<tr>\n<td>info:</td>\n<td>\10</td>\n<td>\15</td>\n<td>\25</td>\n<td>\30</td>\n<td>\35</td>\n<td>\40</td>\n</tr>";