Ich hatte immer das Problem, wenn ich mit FPDF gearbeitet habe, das ich keine vorhandenen PDFs importieren konnte.
Diese wollte ich als Template nutzen, was nur FPDF von Haus aus nicht kann.

Ich habe die Erweiterung FPDI gefunden, womit es nun möglich ist, vorhandene PDFs zu öffnen.

Alle benötigten Sachen findet ihr hier:
Downloadseite von FPDF und Dokumentation
Downloadseite von FPDI / FPDF_TPL und Dokumentation

Alles herunterladen und entpacken. Bei FPDI / FPDF_TPL beide Sachen herunterladen. Die Datei fpdf_tpl.php aus dem FPDF_TPL Archiv in den Ordner von FPDI Kopieren. Ich habe die Ordner von FPDF und FPDI umbenannt, das sie nur noch fpdf und fpdi heißen

So un nun ein kleines Beispiel:

  1. <?php
  2. require_once(‘fpdf/fpdf.php’);
  3. require_once(‘fpdi/fpdi.php’);
  4.  
  5. $pdf = new FPDI();
  6.  
  7. $pdf->setSourceFile(‘template.pdf’);
  8. $tplidx = $pdf->importPage(1);
  9.  
  10. $pdf->addPage();
  11. $pdf->useTemplate($tplidx);
  12.  
  13. $pdf->SetFont(‘Arial’,‘B’,16);
  14. $pdf->Cell(0, 10, ‘Ich bin Text’);
  15.  
  16. $pdf->Output(‘newpdf.pdf’, ‘D’);
  17. ?>

 

Für ein neues Projekt habe ich das gebraucht. PHP bringt passende Funktionen für DBase schon mit, aber ich habe eine Klasse gefunden mit der es einfacher geht.
Die Klasse zum auslesen von DBase Datenbanken steht unter der GPL. Die Klasse kannst du hier downloaden: dbf_class.php

So und nun der Code:
Ab PHP Version 5 gibt es erst die CSV Funktionen.

  1. <?php
  2. include("dbf_class.php");
  3.  
  4. $dbaseDB = ‘DB.dbf’;
  5. $dbf = new dbf_class($dbaseDB);
  6.  
  7. $csvFile = ‘file.csv’;
  8. $csv = fopen($csvFile,"w");
  9.  
  10. $num_rec=$dbf->dbf_num_rec;
  11. fputcsv($csv, array_keys($dbf->getRowAssoc(0)));
  12.  
  13. for($i=0; $i<$num_rec; $i++) {
  14.     fputcsv($csv, $dbf->getRow($i));
  15. }
  16.  
  17. fclose($csv);?>
  18. ?>

Für PHP Version 4, wo es die fputcsv() funktion noch nicht gibt.

  1. <?php
  2. include("dbf_class.php");
  3.  
  4. $dbaseDB = ‘DB.dbf’;
  5. $dbf = new dbf_class($dbaseDB);
  6.  
  7. $csvFile = ‘file.csv’;
  8. $csv_trenner = ‘;’;
  9. $csv = fopen($csvFile,"w");
  10.  
  11. $num_rec=$dbf->dbf_num_rec;
  12. fwrite($csv, implode($csv_trenner,array_keys($dbf->getRowAssoc(0)))."\n");
  13.  
  14. for($i=0; $i<$num_rec; $i++) {
  15.     fwrite($csv, implode($csv_trenner,$dbf->getRow($i))."\n");
  16. }
  17.  
  18. fclose($csv);?>
  19. ?>

Kleines Beispiel zur anzeige eines dynamischen Untermenüs. Abhängig vom angeklickten Hauptmenüpunkt wird das passende Untermenü angezeigt.
Bei mir wird das Untermenü in der Seitenleiste angezeigt (sidebar.php)

Folgenden Code in der sidebar.php im div <div id="sidebar"> hinzufügen.

  1.  
  2. <?php
  3. //untermenu anzeigen wenn vorhanden
  4. $parent_id = $post->post_parent ? $post->post_parent : $post->ID;
  5. $submenu=wp_list_pages(‘title_li=&echo=0&child_of=’.$parent_id);
  6. if($submenu) {
  7.     ?>
  8.     <div class="sec-a_off">
  9.         <h2>Untermenu</h2>
  10.         <ul>
  11.             <?php echo $submenu; ?>
  12.         </ul>
  13.  
  14.     </div>
  15.     <?php
  16. }
  17. ?>
  18.  

 

Diese PHP Funktion prüft E-Mail Adressen nach RFC2822 auf Gültigkeit.

  1.  
  2. <?
  3. if (check_email_address($email)) {
  4.     echo $email . ‘ is a valid email address.’;
  5. } else {
  6.     echo $email . ‘ is not a valid email address.’;
  7. }
  8.  
  9. function check_email_address($email) {
  10.     // check one @ symbol, and that the lengths are right
  11.     if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) {
  12.         // Email invalid because wrong number of characters
  13.         // in one section, or wrong number of @ symbols.
  14.         return false;
  15.     }
  16.     // Split it into sections to make life easier
  17.     $email_array = explode("@", $email);
  18.     $local_array = explode(".", $email_array[0]);
  19.     for ($i = 0; $i < sizeof($local_array); $i++) {
  20.         if (!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~.-]{0,63})|("[^(\|")]{0,62}"))$", $local_array[$i])) {
  21.             return false;
  22.         }
  23.     }
  24.     // Check if domain is IP. If not, it should be valid domain name
  25.     if (!ereg("^[?[0-9.]+]?$", $email_array[1])) {
  26.         $domain_array = explode(".", $email_array[1]);
  27.         if (sizeof($domain_array) < 2) {
  28.             // Not enough parts to domain
  29.             return false;
  30.         }
  31.         for ($i = 0; $i < sizeof($domain_array); $i++) {
  32.             if (!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$", $domain_array[$i])) {
  33.                 return false;
  34.             }
  35.         }
  36.     }
  37.     return true;
  38. }
  39. ?>
  40.