SoloCodigo

Programación Web y Scripting => PHP => Mensaje iniciado por: Ensy en Viernes 1 de Octubre de 2010, 14:28

Título: Error de sintáxis
Publicado por: Ensy en Viernes 1 de Octubre de 2010, 14:28
Hola, alguien me puede decir el error de sintáxis que hay en este código?? Muchas gracias!!!


Código:
function ReadMetaTags($html)
{
//! @return void
//! @desc Pass meta tag info to PDF file properties
$regexp = '/ (\w+?)=([^\s>"]+)/si'; // changes anykey=anyvalue to anykey="anyvalue" (only do this when this happens inside tags)
  $html = preg_replace($regexp," $1="$2"",$html);
  $regexp = '/<meta .*?(name|content)="(.*?)" .*?(name|content)="(.*?)".*?>/si';
  preg_match_all($regexp,$html,$aux);
 
  $firstattr = $aux[1];
  $secondattr = $aux[3];
  for( $i = 0 ; $i < count($aux[0]) ; $i++)
  {

     $name = ( strtoupper($firstattr[$i]) == "NAME" )? strtoupper($aux[2][$i]) : strtoupper($aux[4][$i]);
     $content = ( strtoupper($firstattr[$i]) == "CONTENT" )? $aux[2][$i] : $aux[4][$i];
     switch($name)
     {
       case "KEYWORDS": $this->SetKeywords($content); break;
       case "AUTHOR": $this->SetAuthor($content); break;
       case "DESCRIPTION": $this->SetSubject($content); break;
     }
  }
  //Comercial do Aplicativo usado (no caso um script):
  $this->SetCreator("HTML2FPDF >> http://html2fpdf.sf.net (http://html2fpdf.sf.net" onclick="window.open(this.href);return false;)");
}

Saludos!
Título: Re: Error de sintáxis
Publicado por: ibito en Viernes 1 de Octubre de 2010, 19:14
que error te marca?
Pon tu códgo entre los tags [ code] y [ /code] (sin espacio despues del [). será mas fácil leer el código.
Título: Re: Error de sintáxis
Publicado por: Ensy en Jueves 7 de Octubre de 2010, 18:06
No me marca ningún error, me sale la página en blanco. Creo que me falta algo de cambiar en algún archivo de configuración para que me muestre todos los errores, pero no se el qué... Muchas gracias.

Citar
function ReadMetaTags($html)
{
   //! @return void
   //! @desc Pass meta tag info to PDF file properties
   $regexp = '/ (\w+?)=([^\s>"]+)/si'; // changes anykey=anyvalue to anykey="anyvalue" (only do this when this happens inside tags)
   $html = preg_replace($regexp," $1="$2"",$html);
   $regexp = '/<meta .*?(name|content)="(.*?)" .*?(name|content)="(.*?)".*?>/si';
   preg_match_all($regexp,$html,$aux);

   $firstattr = $aux[1];
   $secondattr = $aux[3];
   for( $i = 0 ; $i < count($aux[0]) ; $i++)
   {
      $name = ( strtoupper($firstattr[$i]) == "NAME" )? strtoupper($aux[2][$i]) : strtoupper($aux[4][$i]);
      $content = ( strtoupper($firstattr[$i]) == "CONTENT" )? $aux[2][$i] : $aux[4][$i];
      switch($name)
      {
         case "KEYWORDS": $this->SetKeywords($content); break;
         case "AUTHOR": $this->SetAuthor($content); break;
         case "DESCRIPTION": $this->SetSubject($content); break;
      }
   }
   //Comercial do Aplicativo usado (no caso um script):
   $this->SetCreator("HTML2FPDF >> http://html2fpdf.sf.net (http://html2fpdf.sf.net" onclick="window.open(this.href);return false;)");
}
Título: Re: Error de sintáxis
Publicado por: ibito en Jueves 7 de Octubre de 2010, 19:18
¿Es ese todo el código que tienes?
Por lo que tienes ahí, es un método de alguna clase, ¿Porqué no pones todo el código que tienes? así será posible ayudarte.
Título: Re: Error de sintáxis
Publicado por: Ensy en Viernes 8 de Octubre de 2010, 10:37
Esto es un método de una clase, mi problema es que el resto del código me lo reconoce bien en colores pero al llegar a esta función me muestra todo en negro, yo lo interpreto como un error de sintáxis pero a lo mejor no es eso...

Exáctamente en la linea:

Citar
$regexp = '/<meta .*?(name|content)="(.*?)".*?>/si';

Detecta hasta /si y ésto último ya me lo muestra en color negro. Y es que no entiendo muy bien qué hace... y cómo no me muestra ningún error el ejecutarlo, pues estoy un poco perdida...

Muchas gracias!
Título: Re: Error de sintáxis
Publicado por: ibito en Martes 12 de Octubre de 2010, 17:14
Entonces tu error no es con PHP, tu error es con tu editor de código, ¿qué editor usas?
Título: Re: Error de sintáxis
Publicado por: shadow_rev en Martes 12 de Octubre de 2010, 20:38
Ya lo pillé, es el ?> que el editor interpreta como el cierre del script de PHP y no como parte de la expresión regular y por eso pone en negro el resto del código, como si se tratase de simple código HTML. Prueba con otro editor, el Notepad++ (http://notepad-plus-plus.org/) por ejemplo.

:suerte:
Título: Re:Error de sintáxis
Publicado por: Ensy en Jueves 1 de Septiembre de 2011, 12:00
Gracias! XD