I've got with preg_replace(). But I guess that filter_var could be used instead. Em 08/11/2011 08:46, "tamouse mailing lists" <tamouse.lists@xxxxxxxxx> escreveu: > On Mon, Nov 7, 2011 at 5:54 AM, Richard Quadling <rquadling@xxxxxxxxx> > wrote: > > On 4 November 2011 16:52, QI.VOLMAR QI <qi.volmar@xxxxxxxxx> wrote: > > > >> i have this part of code that works with DOMDocument: > >> > >> public function translateNFeXML(NFE $nfe_factory) { > >> $inf_adic = $nfe_factory->createElement('infAdic'); > >> if ($this->inf_ad_fisco) { > >> $inf_adic_fisco = > >> $nfe_factory->createElement('infAdicFisco', $this->inf_ad_fisco); > >> $inf_adic->appendChild($inf_adic_fisco); > >> } > >> > >> $string = "a=10&b[]=20&c=30n°&d=40+:50"; > >> die(preg_filter('/[^:][[:punct:]]/', '', $string)); > >> $inf_cpl = $nfe_factory->createElement('infCpl', > >> $this->inf_complementar); > >> > >> QUESTION: Why the preg_filter causes a end of the application, with no > >> error throwing (even in die don't appears nothing)? > > > > > > preg_filter() returns NULL if there are no matches and the subject is a > > string. > > > > And ... > > > > php -r "die(null);" > > > > outputs nothing. > > > Here: > > >> die(preg_filter('/[^:][[:punct:]]/', '', $string)); > > Did you really want to do this: > > preg_filter('/[^:][[:punct:]]/', '', $string) or die("nothing returned\n"); > > ??? > > See http://php.net/manual/en/function.preg-filter.php "Return values" > as Richard points out preg_filter returns NULL if there are no matched > in a string. > > Now this is interesting: > > >> $string = "a=10&b[]=20&c=30n°&d=40+:50"; > > There is a wide character in that string following 30n. The preg > functions sometimes don't deal well with wide characters in my > experience (it's not 100% anyway), you probably need to use the mb_ > functions instead. >