<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Michael weiß was &#187; PHP</title>
	<atom:link href="http://www.michael-schummel.de/category/webentwicklung/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.michael-schummel.de</link>
	<description>Wenn ich etwas recherchiere habe, werde ich hier erklären und verknüpfen.</description>
	<lastBuildDate>Fri, 22 Jul 2011 18:28:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>IBAN-Prüfung mit PHP</title>
		<link>http://www.michael-schummel.de/2007/10/05/iban-prufung-mit-php/</link>
		<comments>http://www.michael-schummel.de/2007/10/05/iban-prufung-mit-php/#comments</comments>
		<pubDate>Fri, 05 Oct 2007 15:22:10 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Webentwicklung]]></category>

		<guid isPermaLink="false">http://www.michael-schummel.de/2007/10/05/iban-prufung-mit-php/</guid>
		<description><![CDATA[Die internationale Kontonummer IBAN wird immer öfter auch ein Thema für Programmierer. Erst einmal wird sie im erleichterten europäischen Zahlungsverkehr immer häufiger genutzt, und dann kann man die IBAN per Software gut nach verschiedene Kriterien geprüften. Sie darf (ohne Leerzeichen) nicht länger als 36 Zeichen sein. In jedem europäischen Land hat sie eine feste Länge [...]]]></description>
			<content:encoded><![CDATA[<p>Die internationale Kontonummer IBAN wird immer öfter auch ein Thema für Programmierer. Erst einmal wird sie im erleichterten europäischen Zahlungsverkehr immer häufiger genutzt, und dann kann man die IBAN per Software gut nach verschiedene Kriterien geprüften.</p>
<ul>
<li>Sie darf (ohne Leerzeichen) nicht länger als 36 Zeichen sein.</li>
<li>In jedem europäischen Land hat sie eine feste Länge (in Deutschland 22 Zeichen). Ein Liste der Länge und der Aufteilung in Bankleitzahl und Kontonummer steht <a href="http://de.wikipedia.org/wiki/International_Bank_Account_Number" target="_blank">hier bei Wikipedia</a></li>
<li>Die zweite und dritte Stelle der IBAN ist eine errechnete Prüfsumme, die per Software errechnet oder geprüft werden kann.</li>
</ul>
<p><span id="more-19"></span>Ich zeige hier, wie die Berechnung und Prüfung in einem PHP-Programm durchgeführt werden kann. Das Ganze ist deswegen etwas spannend, weil eine Modulo-Rechnung, also eine Ganzzahl-Division mit einer bis zu 38-stelligen Ganzzahl durchgeführt werden muss. Wegen der meist nur zur Verfügung stehenden 32-Bit-CPUs können mit PHP aber nur maximal 9 Stellen mit allen Ziffern genutzt werden. Deshalb muss die Modulo-Rechnung in mehere Teilschritte zerlegt werden.</p>
<pre>function test_iban( $iban ) {
    $iban = str_replace( ' ', '', $iban );
    $iban1 = substr( $iban,4 )
        . strval( ord( $iban{0} )-55 )
        . strval( ord( $iban{1} )-55 )
        . substr( $iban, 2, 2 );

    $rest=0;
    for ( $pos=0; $pos&lt;strlen($iban1); $pos+=7 ) {
        $part = strval($rest) . substr($iban1,$pos,7);
        $rest = intval($part) % 97;
    }
    $pz = sprintf("%02d", 98-$rest);

    if ( substr($iban,2,2)=='00')
        return substr_replace( $iban, $pz, 2, 2 );
    else
        return ($rest==1) ? true : false;
}</pre>
<p>Diese PHP-Funktion ergänzt die richtige Prüfziffer, wenn beim Aufruf der Funktion eine IBAN mit Prüfziffern &#8220;00&#8243; übergeben wird. Wird dagegen eine vollständige IBAN mit Prüfziffer übergeben, gibt es als Rückgabe &#8220;true&#8221; wenn die Prüfziffer zu der IBAN passt, andernfalls gibt es das Ergebnis &#8220;false&#8221;.</p>
<p>Diese Berechnung bezieht sich übrigens nur auf die einheitlichen IBAN-Prüfziffern an der dritten und vierten Stelle der IBAN. In manchen Ländern werden weiter hinten auch noch Prüfziffern zu den eigentlichen Kontonummern hinzugefügt. Diese müssen vor der Berechnung mit der hier gezeigten Funktion schon bekannt sein. Das Wissen um diese weiteren Prüfziffern ist eher nur von Bedeutung, wenn man aus einer IBAN die nationalen Bankdaten ableiten möchte. Wer es ganz genau wissen möchte, findet <a href="http://www.pruefziffernberechnung.de/I/IBAN.shtml" target="_blank">auf dieser Webseite</a> die Informationen, wo die zusätzlichen Prüfziffern stehen, und dort gibt es auch Links zu Dokumenten der jeweiligen nationalen IBAN-Regeln.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.michael-schummel.de/2007/10/05/iban-prufung-mit-php/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>SMS versenden aus einer Webanwendung</title>
		<link>http://www.michael-schummel.de/2007/10/03/sms-versenden-aus-einer-webanwendung/</link>
		<comments>http://www.michael-schummel.de/2007/10/03/sms-versenden-aus-einer-webanwendung/#comments</comments>
		<pubDate>Wed, 03 Oct 2007 18:01:54 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.michael-schummel.de/2007/10/03/sms-versenden-aus-einer-webanwendung/</guid>
		<description><![CDATA[Seit einigen Monaten biete ich meinen Kunden/Interessenten in einer Webanwendung einen Callback-Service an. Sie können dazu eine Webseite aufrufen und angeben wann sie auf welcher Nummer angerufen werden wollen. Damit ich schnell reagieren kann, versendet meine Webanwendung nach Eingabe des Callback-Wunschs eine Email an mich, und eine SMS auf mein Mobiltelefon. So kann mir kein [...]]]></description>
			<content:encoded><![CDATA[<p>Seit einigen Monaten biete ich meinen Kunden/Interessenten in einer Webanwendung einen Callback-Service an. Sie können dazu eine Webseite aufrufen und angeben wann sie auf welcher Nummer angerufen werden wollen. Damit ich schnell reagieren kann, versendet meine Webanwendung nach Eingabe des Callback-Wunschs eine Email an mich, und eine SMS auf mein Mobiltelefon. So kann mir kein Callback-Wunsch verloren gehen, auch wenn ich gerade unterwegs bin und der Callback innerhalb kurzer Zeit gewünscht wird.</p>
<p>Damit das funktioniert, habe ich mir einen Zugang bei dem Anbieter &#8220;smskaufen.de&#8221; eingerichtet. Ich kann hier berichten, dass dieser Anbieter zu günstigen Preisen (ab 4 Cent pro SMS) sehr zuverlässig SMS versendet. Der Anbieter versendet auch MMS und Faxe. Das wichtigste ist eine gut dokumentierte Webschnittstelle, über die man diese Versendungen ausführen kann. Jedes Programm, dass in der Lage ist einen HTTP-Post zu versenden und einen HTTP-Response zu empfangen kann die Dienste von &#8220;smskaufen.de&#8221; nutzen.</p>
<p>Neben der Webschnittstelle, können die Dienste auch über die Webseiten von &#8220;smskaufen.de&#8221; und auch über ein lokal installierbares Programm aufgerufen werden, und es gibt eine Email-Schnittstelle, die dort eintreffende Emails in SMS, MMS oder Faxe umwandelt. Zusätzlich wird noch ein WAP-Gateway angeboten, mit dem man von Mobiltelefon aus diese günstigen SMS versenden kann.<br />
Ich freue mich, dass mir ein Geschäftspartner im vorigen Jahr diesen zuverlaässigen Anbieter empfohlen hat.</p>
<ul>
<li><a href="http://www.smskaufen.de" target="_blank">Hier der Link zu &#8220;smskaufen.de&#8221; </a></li>
<li><a href="http://www.smskaufen.com/premium/index.php" target="_blank">und hier der Link zum WAP-Gateway</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.michael-schummel.de/2007/10/03/sms-versenden-aus-einer-webanwendung/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

