Archiv

Archiv für die Kategorie ‘PHP’

isUTF8

26. Januar 2012
function isUTF8($str)
{
  return preg_match('/^([\x09\x0A\x0D\x20-\x7E]|[\xC2][\xA0-\xBF]|[\xC3-\xDF][\x80-\xBF]|\xE0[\xA0-\xBF][\x80-\xBF]|[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}|\xED[\x80-\x9F][\x80-\xBF]|\xF0[\x90-\xBF][\x80-\xBF]{2}|[\xF1-\xF3][\x80-\xBF]{3}|\xF4[\x80-\x8F][\x80-\xBF]{2})*$/', $str);
}
Author: Categories: PHP Tags:

PHP_CodeSniffer in Eclipse verwenden

20. November 2009
  • Eclipse öffnen
  • Run -> external Tools -> External Tools Configuration
  • Program -> rechte Maustaste -> New
  • Name: CodeSniffer
  • Location: absoluter Pfad zu phpcs.bat (gewöhnlich im PHP-Verzeichnis)
  • Arguments: –standard=Zend “${resource_loc}”
  • Apply
  • Run -> external Tools -> Organize Favorites
  • Codesniffer hinzufügen -> ok
  • Ein Symbol erscheint in der Toolbar (grüner Ball mit weissem Pfeil und rotem Koffer)
  • die aktuelle Datei wird onClick gegen den Zend-CodingStandard validiert, onError öffnet sich ein Meldefenster
Author: Categories: PHP Tags:

Diskussionen zu PHP Template Engines

8. Oktober 2009

Die Diskussionen zu Pro und Contras sogenannter Template Engines in PHP scheinen kein Ende zu nehmen. Hier eine kleine Sammlung, die fortgeführt werden könnte.

Links zu Template Engines:

Author: Categories: PHP Tags:

Mail versenden mit Swift_Mailer und Yii

4. Oktober 2009
  • Download SwiftMailer 4.1
  • Erstelle ein Verzeichnis protected/vendor/swift
  • Kopiere den Inhalt des lib-Ordners in den eben erstellten swift-Ordner
  • siehe hier

statt

require_once 'lib/swift_required.php';

schreibe

spl_autoload_unregister(array('YiiBase','autoload'));
Yii::import('application.vendor.swift.swift_required', true);
spl_autoload_register(array('YiiBase','autoload'));
Author: Categories: PHP, Yii Tags:

Mail versenden mit Swift_Mailer

3. Oktober 2009
function sendHtmlMail($from, $to, $subject, $body, $attachments = array()) {
    require_once 'lib/swift_required.php';
 
    $message = Swift_Message::newInstance()
      ->setSubject($subject)
      ->setFrom($from)
      ->setTo($to)
      ->setBody($body, 'text/html');
 
    $transport = Swift_SmtpTransport::newInstance('host', 25)
      ->setUsername('username')
      ->setPassword('password');
 
    $mailer = Swift_Mailer::newInstance($transport);
    return $mailer->send($message);
}
 
var_dump(sendHtmlMail("fromMailAddress", "toMailAddress", "subject", "body"));
Author: Categories: PHP Tags:

PHP Onlineshop Lösungen

23. Juli 2009

Zum Vervollständigen der Liste bitte die Kommentarfunktion nutzen. Beitrag wird ständig überarbeitet.

Author: Categories: PHP Tags:

Mit Yii und Zend einen WordPress Post erzeugen

11. Mai 2009

Hier hab ich erklärt, wie man generell mit Zend_XmlRpc einen WordPress Post erzeugt.

In diesem Beitrag bauen wir uns ein kleines Tool mit dem Yii-Framework, welches mit Hilfe der Zend Komponenten einen Blogeintrag erzeugt. Wir brauchen ein Formular, welches wir mit Yii bauen und eine Action, welche das Formular verarbeitet. zusätzlich wollen wir das Formular noch durch einen Login schützen. Das Ganze ist wirklich nicht viel Arbeit, wie hoffentlich gleich zu sehen sein wird.

Der Weg ist folgender:

Ok, ich hab das Erstellen der Applikation mal ge-outsourced, dieses Wissen könnte bereits vorhanden sein, es ist ja nur ein einfacher Befehl auf der Konsole.

Im Ordner protected/models legen wir nun eine Datei mit dem Namen TestForm.php an mit folgendem Inhalt:

class TestForm extends CFormModel
{
    public $title;
    public $description;
 
    public function rules()
    {
        return array(
            array('title, description', 'required')
        );
    }
}

Im Ordner protected/views nun eine Datei namens test.php

<div class="yiiForm">
    <?php echo CHtml::beginForm(); ?>
 
    <?php echo CHtml::errorSummary($form); ?>
 
    <div class="simple">
    <?php echo CHtml::activeLabel($form,'title'); ?>
    <?php echo CHtml::activeTextField($form,'title'); ?>
    </div>
 
    <div class="simple">
    <?php echo CHtml::activeLabel($form,'description'); ?>
    <?php echo CHtml::activeTextArea($form,'description',array('rows'=>6, 'cols'=>50)); ?>
    </div>
 
    <div class="action">
    <?php echo CHtml::submitButton('Submit'); ?>
    </div>
 
    <?php echo CHtml::endForm(); ?>
 
</div>

Und in der Datei protected/controllers/Sitecontroller.php fügen wir eine zusätzliche Action ein:

public function actionTest()
{
    $form = new TestForm();
    if(isset($_POST['TestForm'])) {
        $form->attributes=$_POST['TestForm'];
 
        if($form->validate()) {
            Yii::import('application.vendors.*');
            require_once 'Zend/XmlRpc/Client.php';
            $client = new Zend_XmlRpc_Client('http://blog.mbischof.de/xmlrpc.php');
 
            $username = 'username';
            $password = 'password';
            $content = array(
                'title' => $form->title,
                'description' => $form->description
            );
 
            $result = $client->call('metaWeblog.newPost', array(
                1, $username, $password, $content, true
            ));
        }
    }
 
    $this->render("test", array("form" => $form));
}

Die entsprechenden Zend Framework-Klassen müssen sich hierbei im Verzeichnis protected/vendors befinden.

Damit wir das ganze noch mit einem Login absichern, brauchen wir noch folgenden Code im Sitecontroller.

public function filters()
{
    return array(
        'accessControl',
    );
}
 
public function accessRules()
{
    return array(
        array('allow', 'actions'=>array('login','contact','index'), 'users'=>array('*')),
        array('allow', 'users'=>array('@')),
        array('deny', 'users'=>array('*'))
    );
}

Und so rufen wir das Ganze nun im Browser auf:

index.php?r=site/test

Fertig!

Author: Categories: PHP, Yii, Zend Framework Tags: