SoloCodigo
Programación Web y Scripting => PHP => Mensaje iniciado 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!
-
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.
-
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.
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;)");
}
-
¿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.
-
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:
$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!
-
Entonces tu error no es con PHP, tu error es con tu editor de código, ¿qué editor usas?
-
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:
-
Gracias! XD