Foros del Web » Programando para Internet » PHP »

Problema con libreria RTF

Estas en el tema de Problema con libreria RTF en el foro de PHP en Foros del Web. hola a todos Acabo de bajar la libreria phpRtf, hice un pequeño ejemplo pero me muestra el siguiente error: Fatal error: Failed opening required 'C:/apache/htdocs/Practica/rtf/Rtf.php' ...
  #1 (permalink)  
Antiguo 24/05/2009, 12:57
 
Fecha de Ingreso: marzo-2009
Mensajes: 96
Antigüedad: 15 años
Puntos: 0
hola a todos

Acabo de bajar la libreria phpRtf, hice un pequeño ejemplo pero me muestra el siguiente error:

Fatal error: Failed opening required 'C:/apache/htdocs/Practica/rtf/Rtf.php' (include_path='.;c:\apache\php\pear') in c:\apache\htdocs\Practica\ejemplo1.php on line 2


La libreria la puse en Practica que es donde tengo todos mis scripts, no se porque me manda este error

Ya lo solucione habìa colocado mal la carpeta, pero ahora me aparece el siguiente error:

Fatal error: Call to undefined function: is_a() in c:\apache\htdocs\Practica\rtf\Container.php on line 129

Este error me sigue saliendo y no se porque es

Fatal error: Call to undefined function: is_a() in c:\apache\htdocs\Practica\rtf\Container.php on line 129

ojala me puedan ayudar

Última edición por GatorV; 27/05/2009 a las 09:02
  #2 (permalink)  
Antiguo 25/05/2009, 14:12
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Problema con libreria RTF

tienes que averiguar que la funcion is_a() este declarada en el documento. Lo primero que debes hacer es averiguar donde esta declarada esa funcion con todos sus paremetros y ver si el archivo esta declarado en la pagina con algun

include()
include_once()
requre();
require_once();
  #3 (permalink)  
Antiguo 25/05/2009, 14:27
 
Fecha de Ingreso: marzo-2009
Mensajes: 96
Antigüedad: 15 años
Puntos: 0
Pues mira en el archivo y la lìnea que me marca el error esta este còdigo:

Código php:
Ver original
  1. <?php
  2. class Container {
  3.  
  4.     var $rtf;
  5.        
  6.     var $elements = array();  
  7.    
  8.     var $pard = '\pard ';
  9.    
  10.     var $emptyPar = false;
  11.    
  12.        
  13.     function Container(&$rtf) {    
  14.         $this->rtf = &$rtf;
  15.     }
  16.    
  17.         function writeRtfCode($text) {     
  18.         $this->elements[] = $text;
  19.     }
  20.    
  21.         function emptyParagraph(&$font, &$parFormat) {
  22.         if (is_a($parFormat, 'ParFormat') && is_a($font, 'Font')) {        
  23.             $content = (count($this->elements) != 0 && empty($this->emptyPar)) ? '\par ' : ''; 
  24.             $content .= $this->pard.$parFormat->getContent($this->rtf);            
  25.             $content .= '{'.$font->getContent($this->rtf).' \par}'."\r\n";  
  26.             $this->elements[] = $content;                  
  27.             $this->emptyPar = true;
  28.         }      
  29.     }
  30.    
  31.         function writeText($text, &$font, &$parFormat, $replaceTags = true) {              
  32.         $text = str_replace('\\', '\\\\', $text);
  33.         $text = str_replace("\r\n", "\r\n".'\par ', $text);
  34.        
  35.         if (!empty($replaceTags)) {
  36.             //bold     
  37.             $text = preg_replace("/<STRONG[ ]*>(.*?)<\/STRONG[ ]*>/mi", "\\b \\1\\b0 ", $text);
  38.             $text = preg_replace("/<B[ ]*>(.*?)<\/B[ ]*>/mi", "\\b \\1\\b0 ", $text);      
  39.             //italic
  40.             $text = preg_replace("/<EM[ ]*>(.*?)<\/EM[ ]*>/mi", "\\i \\1\\i0 ", $text);
  41.             $text = preg_replace("/<I[ ]*>(.*?)<\/I[ ]*>/mi", "\\i \\1\\i0 ", $text);      
  42.             //underline
  43.             $text = preg_replace("/<U[ ]*>(.*?)<\/U[ ]*>/mi", "\\ul \\1\\ul0 ", $text);    
  44.             //break
  45.             $text = preg_replace("/<BR[ ]*(\/)?[ ]*>/mi", "\\line ", $text);
  46.             $text = preg_replace("/<CHDATE[ ]*(\/)?[ ]*>/mi", "\\chdate ", $text);
  47.             $text = preg_replace("/<CHDPL[ ]*(\/)?[ ]*>/mi", "\\\chdpl ", $text);
  48.             $text = preg_replace("/<CHDPA[ ]*(\/)?[ ]*>/mi", "\\chdpa ", $text);
  49.             $text = preg_replace("/<CHTIME[ ]*(\/)?[ ]*>/mi", "\\chtime ", $text);
  50.             $text = preg_replace("/<CHPGN[ ]*(\/)?[ ]*>/mi", "\\chpgn ", $text);
  51.            
  52.             $text = preg_replace("/<TAB[ ]*(\/)?[ ]*>/mi", "\\tab ", $text);
  53.             $text = preg_replace("/<BULLET[ ]*(\/)?[ ]*>/mi", "\\bullet ", $text);
  54.            
  55.             $text = preg_replace("/<PAGENUM[ ]*(\/)?[ ]*>/mi", "\\chpgn ", $text);
  56.             $text = preg_replace("/<SECTNUM[ ]*(\/)?[ ]*>/mi", "\\sectnum ", $text);
  57.            
  58.             $text = preg_replace("/<LINE[ ]*(\/)?[ ]*>/mi", "\\line ", $text);
  59.             //$text = preg_replace("/<PAGE[ ]*(\/)?[ ]*>/mi", "\\page ", $text);
  60.             //$text = preg_replace("/<SECT[ ]*(\/)?[ ]*>/mi", "\\sect", $text);
  61.         }  
  62.                    
  63.         $text = Util::utf8Unicode($text);      
  64.         //content formating
  65.     $content = (is_a($parFormat, 'ParFormat') && count($this->elements) != 0 && empty($this->emptyPar)) ? '\par ' : '';
  66.                                 $this->emptyPar = false;   
  67.         $content .= is_a($parFormat, 'ParFormat') ? $this->pard.$parFormat->getContent($this->rtf) : '';                       
  68.         $content .= '{';
  69.         if (is_a($font, 'Font')) {
  70.             $content .= $font->getContent($this->rtf);         
  71.         }              
  72.         $content .= $text.'}'."\r\n";
  73.                
  74.         $this->elements[] = $content;      
  75.     }
  76.    
  77.     function writeHyperLink($hyperlink, $text, &$font, &$parFormat) {    
  78.         $content = (is_a($parFormat, 'ParFormat') && count($this->elements) != 0) && empty($this->emptyPar) ? '\par ' : '';    
  79.         $this->emptyPar = false;  
  80.         $content .= is_a($parFormat, 'ParFormat') ? $this->pard.$parFormat->getContent($this->rtf) : '';
  81.        
  82.         $this->elements[] = $content.'{\field {\*\fldinst {HYPERLINK "'.$hyperlink.'"}}{\\fldrslt {';
  83.         $null = null;
  84.         $this->writeText($text, $font, $null);
  85.         $this->elements[] .= '}}}'."\r\n"; 
  86.        
  87.     }
  88.         function &addTable($alignment = 'left') {      
  89.         $this->emptyPar = false;  
  90.         $table = new Table($this, $alignment);
  91.         $this->elements[] = &$table;               
  92.         return $table;
  93.     }
  94.    
  95.     function &addImage($fileName, &$parFormat, $width = 0, $height = 0) {  
  96.         $this->emptyPar = false;   
  97.         $image = new Image($this->rtf, $fileName, $parFormat, $width, $height);    
  98.         $this->elements[] = &$image;       
  99.         return $image;
  100.     }
  101.         function getContent() {  
  102.         $content = '';
  103.      
  104.         foreach($this->elements as $key => $value) {           
  105.             if (is_string($value)) {   
  106.                 $content .= $value;            
  107.             } else {                                           
  108.                 if ($key != 0
  109.                     && is_a($value, 'Table')
  110.                     && !is_a($this->elements[$key - 1], 'Table'))
  111.                 {                  
  112.                     $content .= '\par';
  113.                 } else if (is_a($value, 'Image')) {
  114.                     if (is_a($value->parFormat, 'ParFormat')) {
  115.                         $content .= $key != 0 ? '\par' : '';
  116.                         $content .= $this->pard.$value->parFormat->getContent($this->rtf);
  117.                     }
  118.                 }              
  119.                                
  120.                 $content .= $value->getContent();          
  121.             }          
  122.         }    
  123.        
  124.         return $content;
  125.     }    
  126. }
  127. ?>

La lìnea en la que me marca el error es:

$content = (is_a($parFormat, 'ParFormat') && count($this->elements) != 0 && empty($this->emptyPar)) ? '\par ' : '';

Última edición por jam1138; 27/05/2009 a las 10:24
  #4 (permalink)  
Antiguo 26/05/2009, 14:40
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Respuesta: Problema con libreria RTF

.... :roll: ....

... y, entonces, ¿con qué versión de PHP estás trabajando? ....
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #5 (permalink)  
Antiguo 26/05/2009, 14:56
 
Fecha de Ingreso: marzo-2009
Mensajes: 96
Antigüedad: 15 años
Puntos: 0
Respuesta: Problema con libreria RTF

con la 4

Ya cheque el directorio, donde tengo la libreris que descargue y esta bien
  #6 (permalink)  
Antiguo 26/05/2009, 15:05
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Problema con libreria RTF

Trata de cambiar la funcion is_a por

var_dump($parFormat instanceof 'ParFormat');

a ver si se resuelve el problema.
  #7 (permalink)  
Antiguo 26/05/2009, 15:26
 
Fecha de Ingreso: marzo-2009
Mensajes: 96
Antigüedad: 15 años
Puntos: 0
Respuesta: Problema con libreria RTF

Oye nada, me sigue marcando error
  #8 (permalink)  
Antiguo 26/05/2009, 15:31
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Problema con libreria RTF

posiblemente no esta enviando nada en la variable $parFormat

dale un echo antes de esa funcion a ver si tiene alguna informacion el $parFormat
  #9 (permalink)  
Antiguo 26/05/2009, 15:54
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Respuesta: Problema con libreria RTF

Cita:
Iniciado por abimaelrc Ver Mensaje
tienes que averiguar que la funcion is_a() este declarada en el documento. [...]
¿?. Hasta donde me quedé, is_a() es una función nativa de php: www.php.net/is_a

Cita:
Iniciado por abimaelrc Ver Mensaje
posiblemente no esta enviando nada en la variable $parFormat
Y entonces is_a() debería regresar false ... y, sobre todo, el error debería ser otro. ¿qué tiene que ver el valor de la variable con una función no declarada? ...

Cita:
Iniciado por jovanale Ver Mensaje
Oye nada, me sigue marcando error
Te dijeron cambiaras is_a() por var_dump() --por cierto, mal empleado-- ¿y te sigue dando el mismo error de la función is_a()??. No lo hiciste bien.

Cita:
Iniciado por jovanale Ver Mensaje
con la 4
¿Alguna razón en especial para continuar con PHP4?


A ver, con calma, primero vamos poniendo atención en los mensajes de error para entender el problema y no estar adivinando.

jovanale: ¿qué versión exacta de PHP utilizas?, ¿por qué sigues con PHP4?, ¿cómo lo instalaste?. Siempre muestra el error exacto que salió y el código ligado --no todo, la parte implicada--. Simplemente, eso de que te pidieron utilizar var_dump() --insisto, mal empleada-- y dices que te salió "el mismo error" no puede ser. Muestra la modificación y el error exacto. Ayuda a que se te ayude. Por favor consulta la documentación, dejo el enlace a la función is_a(), verás su uso, cómo ha quedado obsoleta (que no debería ser tu problema estando en PHP4) y su "alternativa" actual ...

..... un saludo
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #10 (permalink)  
Antiguo 26/05/2009, 15:56
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Problema con libreria RTF

jaja es que nunca he usado esa funcion, me di cuenta luego que is_a es una funcion de PHP.
  #11 (permalink)  
Antiguo 26/05/2009, 16:01
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Respuesta: Problema con libreria RTF

Cita:
Iniciado por abimaelrc Ver Mensaje
jaja es que nunca he usado esa funcion, me di cuenta luego que is_a es una funcion de PHP.
Lo cual nos apunta a que probablemente se estará utilizando una versión anterior a la 4.2 (¡que cosas! ) .... pero igual, como verás, es una función que deberá reemplazarse por instanceof ... vaya, muy entendible .

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #12 (permalink)  
Antiguo 27/05/2009, 08:05
 
Fecha de Ingreso: marzo-2009
Mensajes: 96
Antigüedad: 15 años
Puntos: 0
La versiòn que uso de php es la 4.2.1, cuando use var dump me produjo un monton de errores:

Cita:
object(parformat)(1) { ["alignment"]=> string(3) "\qc" } string(9) "ParFormat" object(parformat)(1) { ["alignment"]=> string(3) "\qc" } string(9) "ParFormat" object(font)(4) { ["size"]=> int(12) ["font"]=> string(0) "" ["fontColor"]=> string(0) "" ["backColor"]=> string(0) "" } string(4) "Font"
Warning: Cannot add header information - headers already sent by (output started at c:\apache\htdocs\rtf\Container.php:129) in c:\apache\htdocs\rtf\Rtf.php on line 379

Warning: Cannot add header information - headers already sent by (output started at c:\apache\htdocs\rtf\Container.php:129) in c:\apache\htdocs\rtf\Rtf.php on line 380

Warning: Cannot add header information - headers already sent by (output started at c:\apache\htdocs\rtf\Container.php:129) in c:\apache\htdocs\rtf\Rtf.php on line 381

Warning: Cannot add header information - headers already sent by (output started at c:\apache\htdocs\rtf\Container.php:129) in c:\apache\htdocs\rtf\Rtf.php on line 382

Warning: Cannot add header information - headers already sent by (output started at c:\apache\htdocs\rtf\Container.php:129) in c:\apache\htdocs\rtf\Rtf.php on line 383
{\rtf\ansi\deff0 \r\n{\fonttbl{\f0 Times new Roman;}} {\colortbl;\red0\green0\blue0;} {\info } \deftab1298 \paperw11907 \paperh16443 \margl1701 \margr1701 \margt567 \margb1134 {\i Hello \b World\b0 \i0 .} }
Puse instanceof y ahora me muestra el siguiente error:

Cita:
Fatal error: Failed opening required 'Practica/rtf/Rtf.php' (include_path='.;c:\apache\php\pear') in c:\apache\htdocs\practica\hello_world.php on line 3

Última edición por GatorV; 27/05/2009 a las 09:05
  #13 (permalink)  
Antiguo 27/05/2009, 10:41
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Respuesta: Problema con libreria RTF

... ok, nuevamente, por partes (estoy muy paciente).

Primero, por favor, atención en tus temas. Esto es un foro, no un chat. Con gusto se te ayuda, pero respeta nuestro tiempo y esfuerzo: ayuda a que se te ayude.

Vamos entendiendo la situación y errores:
- var_dump() es una función a la cual le pasas una variable como parámetro y te mandará al navegador toda la información respecto a esa variable (lee la documentación). Te dijeron la utilizaras por la posibilidad de que la variable no tuviera valor, cosa que se puede ver no es así.

Las primeras líneas es la información de tu variable, se ve es un objeto y despliega sus propiedades ... todo normal, de hecho, se ve hay una propiedad parFormat que es un objeto de tipo partformat (y uno font ), que es lo que comprueba la validación que te da problemas (is_a()).

Las siguientes líneas que dicen "Cannot add header information" sí son errores, te están diciendo (lee) que no se pueden añadir cabeceras pues ya han sido enviadas; es un error común, encontrarás mucha información si buscas el error, consulta las FAQ, hay un par que hablan respecto a ese tópico. Como sea, el error se produce precisamente por el uso de la función var_dump() ya que produjo la salida de la información de la variable. Simplemente regresa a tu código original... esto deberías entenderlo.

----------------------
Eso por una parte, la otra parte de la historia dice:

El error que dice "Failed opening required" te está indicando que el archivo requerido no fue encontrado. ya te habías topado con dicha situación. Nuevamente: verifica tus rutas.


Y nuevamente: ¿qué razón hay de seguir utilizando PHP4?

Sugiero:
- Utiliza el código original de la clase, no sé qué cambios has hecho pero asegúrate de tener el código original.
- Trata de implementar tu clase. Si te muestra un error muestra aquí el error exacto y el código de tu implementación (no de la clase, que es el que colocaste aquí).
- Si el error es "Failed opening required...", ¡revisa la ruta!, llama bien a la clase en el require()

... osease, , desde el principio y con calma que llevamos prisa.

Un saludo
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #14 (permalink)  
Antiguo 27/05/2009, 12:49
 
Fecha de Ingreso: marzo-2009
Mensajes: 96
Antigüedad: 15 años
Puntos: 0
Respuesta: Problema con libreria RTF

Gracias, por la paciencia y perdon por la molestia, lo que pasa es que ya me desepere y creo que estoy haciendo tonterias.

Mira la clase ya la deje tal cual la descargue y el ejemplo que estoy utilizando es el que viene el sitio de phprtf, lo unico que le cambie fue la ruta del rtf/Rtf.php en el require.

Ya cheque la ruta y esta bien, explico: tengo mi aplicacion en la carpeta Practica que esta dentro de c:/apache/localhost, es decir c:/apache/localhost/Practica y en Practica es donde tengo la libreria que descargue.

En el ejemplo tengo:

Cita:
<?php

require_once("Practica/rtf/Rtf.php");
$rtf = new Rtf();
$sect = &$rtf->addSection();
$sect->writeText('<i>Hello <b>World</b></i>.', new Font(12), new ParFormat('center'));

$rtf->sendRtf('Hello World');
?>
  #15 (permalink)  
Antiguo 27/05/2009, 14:01
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Respuesta: Problema con libreria RTF

... ¿no se te olvidó mencionar el error? ... dices lo que tienes, pero no dices por qué no funciona .

Debido a que insistes en la ruta de los archivos, supongo el error sigue siendo con el require y la ruta de los archivos ...
Cita:
Iniciado por jovanale Ver Mensaje
[...] tengo mi aplicacion en la carpeta Practica que esta dentro de c:/apache/localhost, es decir c:/apache/localhost/Practica y en Practica es donde tengo la libreria que descargue.
A ver, te entiendo el árbol de tus archivos es algo como:
Código:
C:/apache/localhost/Practica
                           + rtf
                           |   |- Rtf.php
                           |
                           |- tuArchivo.php

Si esto es así, nuevamente: www.php.net/include

Cuando haces require('Practica/rtf/Rtf.php'), utilizando una ruta relativa, estás indicando que desde la ubicación donde se ejecuta el archivo, entre a un directorio Practica, luego a otro directorio rtf y ahí debe ubicarse el archivo Rtf.php ... cosa que, desde ahí, ¡esta mal!, porque "tuArchivo.php" YA ESTÁ en Practica, no hay un "Practica" dentro de "Practica" ...

... (sus) ... revisa tus rutas, la estructura de tus archivos.

Ojalá y éste no sea tu error ... y entonces, muestres el error verdadero.
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #16 (permalink)  
Antiguo 27/05/2009, 14:15
 
Fecha de Ingreso: marzo-2009
Mensajes: 96
Antigüedad: 15 años
Puntos: 0
Respuesta: Problema con libreria RTF

El error que me muestra es el de:

Cita:
Fatal error: Failed opening required 'Practica/rtf/Rtf.php' (include_path='.;c:\apache\php\pear') in c:\apache\htdocs\practica\hello_world.php on line 3
ok, si el àrbol de mis archivos es como mencionas anteriormente.

Asì que lo tengo que cambiar es mi require a solo

require_once("rtf/Rtf.php");
  #17 (permalink)  
Antiguo 27/05/2009, 14:23
 
Fecha de Ingreso: marzo-2009
Mensajes: 96
Antigüedad: 15 años
Puntos: 0
Respuesta: Problema con libreria RTF

Ya cambie mi require pero ahora me muestra el error de la funcion is_a en el archivo Container y si le cambio la funcion a instance of me muestra el mismo pero con instance of, algo como:

Cita:
Fatal error: Call to undefined function: instanceof() in c:\apache\htdocs\practica\rtf\Container.php on line 129
  #18 (permalink)  
Antiguo 27/05/2009, 15:19
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Respuesta: Problema con libreria RTF

Perfecto, llegamos al verdadero problema.

Primero, instanceof está disponible a partir de PHP5, con PHP4 simplemente no funcionará. En su lugar debería utilizar is_a() que está disponible a partir de PHP 4.2 ... como te dije en tu otro tema esta clase tiene sintaxis de PHP4 ... como sea, aquí es donde está lo raro, ya que dices que utilizas la versión 4.2.1, ¿completamente seguro de eso?, ¿utilizaste alguna instalación particular?.

Habría que ver qué de especial tiene tu version/instalación de PHP, algo no está funcionando. Igual repito mi recomendación inicial: cámbiate a PHP5; PHP4 ya es obsoleto, ¿qué razón tienes para no hacerlo?.

Entendiendo el código, lo que se pretende hacer con is_a() e instanceof es comprobar que una variable es un objeto de determinado tipo, ya que tienes problema con la definición de dichas funciones (aunque instanceof es un operador, no una función), podrías probar utilizando get_class(), que te regresa el nombre de la clase.

Por ejemplo, en la línea que mencionas te muestra el error se tiene esto:
Código php:
Ver original
  1. $content = (is_a($parFormat, 'ParFormat') && count($this->elements) != 0 && empty($this->emptyPar)) ? '\par ' : '';
Debería cambiarse por esto:
Código php:
Ver original
  1. $content = ((get_class($parFormat) == 'ParFormat') && count($this->elements) != 0 && empty($this->emptyPar)) ? '\par ' : '';
¿observas?, se obtiene el nombre de la clase y se compara como un string común.

... para no tener que cambiar todo el código donde aparece is_a(), igual podrías definirla tú mismo e imitar su funcionamiento. Podrías colocar lo siguiente en tuArchivo.php, antes de incluir la clase:

Código php:
Ver original
  1. <?php
  2.  
  3. if (!function_exists('is_a')) {
  4.     function is_a($objeto, $clase) {
  5.         $obClass = get_class($objeto);
  6.         return ($obClass == $clase);
  7.     }
  8. }
  9. // Y, entonces, ahora sí está definida is_a() con un comportamiento similar a la función nativa ...
  10.  
  11. require_once("Practica/rtf/Rtf.php");
  12. $rtf = new Rtf();
  13. $sect = &$rtf->addSection();
  14. $sect->writeText('<i>Hello <b>World</b></i>.', new Font(12), new ParFormat('center'));
  15.  
  16. $rtf->sendRtf('Hello World');
  17. ?>

... pero no habría necesidad de nada de esto si utilizaras PHP5 ...

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #19 (permalink)  
Antiguo 27/05/2009, 15:56
 
Fecha de Ingreso: marzo-2009
Mensajes: 96
Antigüedad: 15 años
Puntos: 0
Respuesta: Problema con libreria RTF

Ok, gracias!!!!!!!!!!!

Ya lo probe y funciona bien, muchas gracias, te lo agradezco mucho.

Y otra vez gracias por la paciencia y disculpen las molestias.

Gracias!!!!!!!!!!!!
  #20 (permalink)  
Antiguo 27/05/2009, 17:03
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Respuesta: Problema con libreria RTF

Y funcionó y punto ... :-/

Espero al menos se me haya entendido la mitad de lo que repetí dije y que haya quedado claro que PHP4 ya no debería usarse.
Sí, se logró hacer funcionar la clase, pero hay algo en tu versión de PHP que está mal ... lo único que se hizo con lo que te propuse fue "saltarse" el problema, pero sigue ahí.

Como sea, que bueno que te funcionó. Un saludo
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:38.