Das iPhone-Devteam teilte heute mit, das noch diese Woche ein unlock und jailbreak für das iPhone mit OS 3.0 vorgestellt wird. Es wird eine Live Demo zum unlock geben. Genauere informationen dazu findet ihr bei twitter @MuscleNerd. Der unlock ist kompatibel zu iTunes 8.2.

Wenn der IMAP-Server mal die Meldung “Zertifikat abgelaufen” bringen sollte, kann man wie folgend ein neues erstellen.

1. In das Verzeichnis /etc/courier/ bzw. /etc/courier-imap/ wechseln.
2. Das alte Zertifikat sichern: imapd.pem
3. Nun ein neues Zertifikat erzeugen. #mkimapdcert
4. Noch ein Zertifikat erstellen, was vom Client importiert werden kann. #openssl x509 -in imapd.pem -out imapd.crt

Fertig. Nun sollte alles wieder funktionieren.

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. ?>

Hier eine kleine Übersicht über die nützlichsten vordefinierten Konstanten in PHP.

Konstante Funktion
__FILE__ Name des laufenden Scripts
__LINE__ Aktuelle Zeilennummer
__FUNCTION__ Name der aktuellen Funktion
__CLASS__ Klassenname des aktuell verwendeten Objekts
__METHOD__ Aktueller Name der Klassenfunktion
PHP_VERSION Versionsnummer des PHP-Interpreter
PHP_OS Name des Betriebssystems
Mathematische Konstanten
Konstante Wert Bedeutung
M_PI 3.141592653589… pi
M_PI_2 1.570796326794… pi/2
M_PI_4 0.785398163397… pi/4
M_1_PI 0.318309886183… 1/pi
M_SQRT2 1.414213562373… sqrt(2)