Cita:
Iniciado por Hidek1
eso deberia funcionar.. solo cambiale el /mi por /s
ya que el dijo que tenia q respetar mayuscula y minuscula.. y la s para que te reemplaze todas y no solo la primera :B
saludos!
Tenía entendido que con los modificadores que puse debería funcionar:
- El "i" le dice que reemplace siempre, no importa si coinciden mayúsculas y minúsculas, pero el reemplazo lo hará por lo que vaya encontrando... sino ¿cómo haces con las expresiones regulares más complejas? En otras palabras, la "i" es sólo para que "matchee" sin distinguir mayúsculas y minúsculas.
- El "m" es para que busque en todas las líneas (no entiendo cuál es la diferencia con el "s").
Es una expresión regular que modifiqué de un método de la clase "container" de la librería "PHPRTFLite", por eso confío en que debería funcionar. ¡Suerte!
PD: el método original de la clase:
Código PHP:
function writeText($text, &$font, &$parFormat, $replaceTags = true) {
$text = str_replace('\\', '\\\\', $text);
$text = str_replace("\r\n", "\r\n".'\par ', $text);
if (!empty($replaceTags)) {
//bold
$text = preg_replace("/<STRONG[ ]*>(.*?)<\/STRONG[ ]*>/mi", "\\b \\1\\b0 ", $text);
$text = preg_replace("/<B[ ]*>(.*?)<\/B[ ]*>/mi", "\\b \\1\\b0 ", $text);
//italic
$text = preg_replace("/<EM[ ]*>(.*?)<\/EM[ ]*>/mi", "\\i \\1\\i0 ", $text);
$text = preg_replace("/<I[ ]*>(.*?)<\/I[ ]*>/mi", "\\i \\1\\i0 ", $text);
//underline
$text = preg_replace("/<U[ ]*>(.*?)<\/U[ ]*>/mi", "\\ul \\1\\ul0 ", $text);
//break
$text = preg_replace("/<BR[ ]*(\/)?[ ]*>/mi", "\\line ", $text);
$text = preg_replace("/<CHDATE[ ]*(\/)?[ ]*>/mi", "\\chdate ", $text);
$text = preg_replace("/<CHDPL[ ]*(\/)?[ ]*>/mi", "\\\chdpl ", $text);
$text = preg_replace("/<CHDPA[ ]*(\/)?[ ]*>/mi", "\\chdpa ", $text);
$text = preg_replace("/<CHTIME[ ]*(\/)?[ ]*>/mi", "\\chtime ", $text);
$text = preg_replace("/<CHPGN[ ]*(\/)?[ ]*>/mi", "\\chpgn ", $text);
$text = preg_replace("/<CHPGM[ ]*(\/)?[ ]*>/mi", "\\par \\page ", $text);
$text = preg_replace("/<TAB[ ]*(\/)?[ ]*>/mi", "\\tab ", $text);
$text = preg_replace("/<BULLET[ ]*(\/)?[ ]*>/mi", "\\bullet ", $text);
$text = preg_replace("/<PAGENUM[ ]*(\/)?[ ]*>/mi", "\\chpgn ", $text);
$text = preg_replace("/<SECTNUM[ ]*(\/)?[ ]*>/mi", "\\sectnum ", $text);
$text = preg_replace("/<LINE[ ]*(\/)?[ ]*>/mi", "\\line ", $text);
$text = preg_replace("/<PAGE[ ]*(\/)?[ ]*>/mi", "\\page ", $text);
$text = preg_replace("/<SECT[ ]*(\/)?[ ]*>/mi", "\\sect", $text);
}
$text = Util::utf8Unicode($text);
//content formating
$content = (is_a($parFormat, 'ParFormat') && count($this->elements) != 0 && empty($this->emptyPar)) ? '\par ' : '';
$this->emptyPar = false;
$content .= is_a($parFormat, 'ParFormat') ? $this->pard.$parFormat->getContent($this->rtf) : '';
$content .= '{';
if (is_a($font, 'Font')) {
$content .= $font->getContent($this->rtf);
}
$content .= $text.'}'."\r\n";
$this->elements[] = $content;
}