file_get_contents schneidet inhalt ab?!

WebRabbit

Mitglied
Hallo Experten, ich habe mal wieder ein kleines Problem:
ich hole mir mit file_get_contents den Inhalt einer PHP-Datei. Das funktioniert auch soweit ganz gut. Diese Datei holt sich Informationen aus einer DB und gibt verschieden lange Texte aus mit Variablen aus. Nun habe ich festgestellt, wenn der Text zu lang ist, wird er einfach abgeschnitten. Ich habe alles Mögliche versucht, die fehlenden Textstücke zu bekommen (durch Codeschnipsel aus dem Forum, Internet.. ). Was bei einigen Inhalten funktioniert hat, war das ich den Inhalt der PHP-Datei von Leerzeichen und Absätzen befreit habe. Denke daher das es an der Größe eines Buffers oder dergleichen liegt. Nur wie ändere ich das? Habe schon versucht file_get_contents eine Bytegröße der Datei mitzugeben aber hat nicht funktioniert.

Der Quelltext:
PHP:
     $result="<div style='font-size:120%;'>";
     ob_start();
     echo eval(" ?>".file_get_contents('test.inc.php'));    
     $result .= ob_get_contents();
     $result.="</div>";
unde der Quellcode der test.inc.php:
PHP:
include "config.inc.php";
include "zugriff.inc.php";
$geraet = htmlentities($geraet);
if(isset($geraet) && !empty($geraet)){
   $res_prospekt = mysql_query("SELECT produkt, bild FROM cms_prospekte WHERE hersteller='$bereich' && produkt='$geraet' GROUP BY bild");
   }//ENDE if(isset($geraet) && !empty($geraet))
   else{
        $res_prospekt = mysql_query("SELECT produkt, bild FROM cms_prospekte WHERE hersteller='$bereich' GROUP BY bild");
        }//ENDE else(isset($geraet) && !empty($geraet))
$row_pros = mysql_fetch_assoc($res_prospekt);
echo"
<table align='center' border='0' width='500' cellspacing='10' style='margin-top:30px;'>
      <tr>
          <td align='center' colspan='2'><h2>$row_pros[produkt]</h2></td>
      </tr>
      <tr>
          <td colspan='2' align='center'>
          Hier finden Sie alle, vom Hersteller '$row_pros[produkt]' vorliegenden Informationen. Sie k&ouml;nnen die Information durch anklicken anschauen oder mit einem rechtsklick
          den Speicherort f&uuml;r die Datei w&auml;hlen und Sie downloaden. F&uuml;r die Betrachtung wird der 'Adobe Reader' ben&ouml;tigt. Diesen bekommen Sie <a href='http://www.adobe.com'>hier</a>!
      </td>
      </tr>
      <tr>
          <td align='center' width='200px'>
              <div id='gallery'>
                <a href='#nogo'>
                   <img src='bilder/thumb_$row_pros[bild]' /><span><img src='bilder/$row_pros[bild]' border='0' /></span>
                </a>
              </div>
          </td>
          <td valign='top'>";                         
        if(isset($geraet) && !empty($geraet)){
           /* $geraet wird schon in der Datei festgelegt, wo das Ergebnis dieser Abrage per file_get_contents  wieder eingefügt werden soll*/
           $res_prospekt = mysql_query("SELECT prospektart FROM cms_prospekte WHERE hersteller='$bereich' && produkt='$geraet' GROUP BY prospektart");
           }//ENDE if(isset($geraet) && !empty($geraet))
           else{
                $res_prospekt = mysql_query("SELECT prospektart FROM cms_prospekte WHERE hersteller='$bereich' GROUP BY prospektart");
                }//ENDE else(isset($geraet) && !empty($geraet))                 
        while($row_pros = mysql_fetch_assoc($res_prospekt)){
             if(isset($geraet) && !empty($geraet)){
               $res_prospektart = mysql_query("SELECT * FROM cms_prospekte WHERE hersteller='$bereich' && produkt='$geraet' && prospektart='$row_pros[prospektart]' GROUP BY pdf");
               }//ENDE if(isset($geraet) && !empty($geraet))
               else{
                    $res_prospektart = mysql_query("SELECT * FROM cms_prospekte WHERE hersteller='$bereich' && prospektart='$row_pros[prospektart]' GROUP BY pdf");
                    } //ENDE else(isset($geraet) && !empty($geraet)) 
               echo"<b>$row_pros[prospektart]</b><br/>";
               while($row_prosart= mysql_fetch_assoc($res_prospektart)){     
                   $hersteller = trim($row_prosart['hersteller']);                             
                   echo"                          
                    <a href='#' onClick='NewWindow=window.open(".'"'."./pdf/$hersteller/$row_prosart[pdf]".'"'.", ".'"'."$row_prosart[linkname]".'"'.", ".'"'."toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,width=600,height=800,left=200,top=200".'"'."); return false;'>$row_prosart[linkname]</a>
                    <br/>";
                    }//ENDE while($row_prosart= @mysql_fetch_assoc($res_prospektart))
                    echo"<p/>";
              }//ENDE while($row_pros = @mysql_fetch_assoc($res_prospekt))
echo"</td>
   </tr>
</table>";


vielleicht kann mir ja jemand weiterhelfen?

Vielen Dank für eure Mühe!

Gruß Webrabbit
 
Hm das hätte ich vielleicht erwähnen sollen.. das ganze sieht so aus, das es eine html-seite mit 3 select-feldern gibt, die per Ajax die Auswahl(en) dieser Felder an eine php-Datei (switch.inc.php) übergibt. In der PHP-Datei wird entweder direkt ein Text per XML wieder zurück gegeben oder aber wie bei der Auswahl an der ich aktuell arbeite, wird eine zweite PHP-Datei (test.inc.php) mit Datenbankabfrage aufgerufen und quasi mit file_get_content in eine Variable in der ersten (switch.inc.php) Datei übernommen. Diese Variable also wird dann per XML weitergegeben an das ursprüngliche Formular mit den select-Feldern.

Ich hoffe ich konnte es so einigermaßen verständlich rüberbringen?!
 
Also ich habe gerade nochmal etwas herumprobiert. Scheinbar ist es kein Problem von file_get_contents sondern hat was mit der Rückgabe der Werte per AJAX zu tun. Entweder darf der Inhalt in der XML Struktur nicht so lang sein, oder die JS verarbeitung hat ein Problem damit solch "große" Datenmengen einzubinden.

Allerdings mit AJAX kenn ich mich noch nicht so gut aus.
Hat da jemand nen Tip?
 
Zurück