<?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>Antary &#187; PHP</title>
	<atom:link href="http://www.antary.de/category/coding/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.antary.de</link>
	<description></description>
	<lastBuildDate>Sat, 04 Feb 2012 16:50:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>PHP: cURL als Alternative für allow_url_fopen</title>
		<link>http://www.antary.de/2011/05/26/php-curl-als-alternative-fuer-allow_url_fopen/</link>
		<comments>http://www.antary.de/2011/05/26/php-curl-als-alternative-fuer-allow_url_fopen/#comments</comments>
		<pubDate>Thu, 26 May 2011 15:18:03 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.antary.de/?p=2891</guid>
		<description><![CDATA[Gestern bekam ich eine Mail von meinem Webhoster, dass ab sofort die aktuellste PHP-Version 5.3.6 zur Verfügung steht. Die neue Version ist nun direkt als Modul in Apache integriert, anstatt wie früher als CGI-Programm. Dadurch sollen sich spürbare Geschwindigkeitsverbesserungen ergeben. &#8230; <a href="http://www.antary.de/2011/05/26/php-curl-als-alternative-fuer-allow_url_fopen/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Gestern bekam ich eine Mail von meinem Webhoster, dass ab sofort die aktuellste PHP-Version 5.3.6 zur Verfügung steht. Die neue Version ist nun direkt als Modul in Apache integriert, anstatt wie früher als CGI-Programm. Dadurch sollen sich spürbare Geschwindigkeitsverbesserungen ergeben. Tatsächlich muss ich sagen, dass mein Blog deutlich schneller lädt, vor allem der Admin-Bereich.</p>
<p>Allerdings wurde aus Sicherheitsgründen auch die Funktion <em>&#8220;allow_url_fopen&#8221;</em> standardmäßig deaktiviert. Damit funktioniert mein kürzlich <a href="/2011/05/10/rss-feeds-mit-php-auslesen/">vorgestelltes Skript</a> zum RSS-Feeds auslesen leider nicht mehr. Den Code habe ich auch zum Anzeigen der<em> &#8220;Hartware News&#8221;</em> in der Sidebar ganz unten auf der Startseite verwendet. Also was tun? Zurück auf die alte PHP-Version und die bessere Performance herschenken? Nein, kommt nicht in Frage. Also musste mein Skript angepasst werden. War sogar deutlich einfacher als ich anfangs dachte. </p>
<p>Anstatt des bisherigen Codes zum Laden des RSS-Feeds</p>
<pre class="brush: php; title: ; notranslate">$xml =simplexml_load_file('http://www.hartware.net/xml/news.rdf</pre>
<p>hier die Lösung mit cURL:</p>
<pre class="brush: php; title: ; notranslate">$url = &quot;http://www.hartware.de/xml/news.rdf&quot;;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$xml_raw = curl_exec($ch);
curl_close($ch);
$xml = simplexml_load_string($xml_raw)</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.antary.de/2011/05/26/php-curl-als-alternative-fuer-allow_url_fopen/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>RSS-Feeds mit PHP auslesen</title>
		<link>http://www.antary.de/2011/05/10/rss-feeds-mit-php-auslesen/</link>
		<comments>http://www.antary.de/2011/05/10/rss-feeds-mit-php-auslesen/#comments</comments>
		<pubDate>Tue, 10 May 2011 14:30:31 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.antary.de/?p=2874</guid>
		<description><![CDATA[Nachfolgend ein kleiner Codeschnipsel, wie man einen RSS-Feed mit PHP ausliest. Mit dem gleichen Code sind auch die &#8220;Hartware News&#8221; in der Sidebar ganz unten auf der Startseite meines Blogs realisiert. Die Ausgabe könnt ihr natürlich mit HTML formatieren und &#8230; <a href="http://www.antary.de/2011/05/10/rss-feeds-mit-php-auslesen/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Nachfolgend ein kleiner Codeschnipsel, wie man einen RSS-Feed mit PHP ausliest. Mit dem gleichen Code sind auch die &#8220;Hartware News&#8221; in der Sidebar ganz unten auf der Startseite meines Blogs realisiert. Die Ausgabe könnt ihr natürlich mit HTML formatieren und an euer Design anpassen.</p>
<pre class="brush: php; title: ; notranslate">// Feed einlesen
if( !$xml = simplexml_load_file('http://www.hartware.net/xml/news.rdf') ) {
    die('Fehler beim Einlesen der XML Datei!');
}

// Ausgabe Array
$out = array();

// auszulesende Datensaetze
$i = 5;

// Items vorhanden?
if( !isset($xml-&gt;channel[0]-&gt;item) ) {
	die('Keine Items vorhanden!');
}

// Items holen
foreach($xml-&gt;channel[0]-&gt;item as $item) {
	if( $i-- == 0 ) {
		break;
	}

	$out[] = array(
		'title'        =&gt; (string) $item-&gt;title,
		'description'  =&gt; (string) $item-&gt;description,
		'link'         =&gt; (string) $item-&gt;guid,
		'date'         =&gt; date('d.m.Y H:i', strtotime((string) $item-&gt;pubDate))
	);
}

// Eintraege ausgeben
foreach ($out as $value) {
	echo $value['title'].$value['description'].$value['link'];
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.antary.de/2011/05/10/rss-feeds-mit-php-auslesen/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Linksammlung – PHP Frameworks</title>
		<link>http://www.antary.de/2011/02/05/linksammlung-php-frameworks/</link>
		<comments>http://www.antary.de/2011/02/05/linksammlung-php-frameworks/#comments</comments>
		<pubDate>Sat, 05 Feb 2011 07:52:52 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.antary.de/?p=2675</guid>
		<description><![CDATA[Nachfolgend eine Linksammlung mit verschiedenen PHP Frameworks. Die bekannteren Frameworks sind fett markiert. Meine Favoriten sind das &#8220;Adventure PHP Framework&#8221; und &#8220;Kohana&#8221;. Beide Frameworks sind relativ schlank, bieten aber trotzdem sehr viele durchdachte Funktionen. Zudem verfügen beide über eine gute &#8230; <a href="http://www.antary.de/2011/02/05/linksammlung-php-frameworks/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Nachfolgend eine Linksammlung mit verschiedenen PHP Frameworks. Die bekannteren Frameworks sind fett markiert.</p>
<p>Meine Favoriten sind das <em>&#8220;Adventure PHP Framework&#8221;</em> und <em>&#8220;Kohana&#8221;</em>. Beide Frameworks sind relativ schlank, bieten aber trotzdem sehr viele durchdachte Funktionen. Zudem verfügen beide über eine gute Dokumentation und die Entwicklung schreitet stetig voran.</p>
<ul>
<li><strong><a href="http://adventure-php-framework.org/" target="_blank">Adventure PHP Framework</a></strong></li>
<li><a href="http://www.agavi.org/" target="_blank">Agavi</a></li>
<li><a href="http://new.atk4.com/" target="_blank">Agile Toolkit</a></li>
<li><a href="http://www.akelos.org/" target="_blank">Akelos</a></li>
<li><a href="http://alloyframework.org/" target="_blank">Alloy HVMC PHP Framework</a></li>
<li><a href="http://www.atk-framework.com/" target="_blank">ATK Framework</a></li>
<li><strong><a href="http://cakephp.org/" target="_blank">CakePHP</a></strong></li>
<li><strong><a href="http://codeigniter.com/" target="_blank">CodeIgniter</a></strong></li>
<li><a href="http://jelix.org/" target="_blank">Jelix</a></li>
<li><a href="http://flourishlib.com/" target="_blank">Flourish</a></li>
<li><strong><a href="http://kohanaframework.org/" target="_blank">Kohana</a></strong></li>
<li><a href="http://nanomvc.com/" target="_blank">NanoMVC</a></li>
<li><a href="http://nette.org/en/" target="_blank">Nette Framework</a></li>
<li><a href="http://www.nexista.org/" target="_blank">Nexista</a></li>
<li><a href="http://www.phpdevshell.org/" target="_blank">PHPDevShell</a></li>
<li><a href="http://fatfree.sourceforge.net/" target="_blank">PHP Fat-Free Framework</a></li>
<li><a href="http://www.phpontrax.com" target="_blank">PHP on TRAX</a></li>
<li><a href="http://www.phpulse.com/" target="_blank">PHPulse</a></li>
<li><strong><a href="http://www.pradosoft.com/" target="_blank">Prado</a></strong></li>
<li><a href="http://www.prontoproject.com/" target="_blank">Pronto</a></li>
<li><a href="http://www.qcodo.com/" target="_blank">Qcodo</a></li>
<li><a href="http://qphp.net/" target="_blank">Quick PHP Framework</a></li>
<li><a href="http://www.redsparkframework.de/" target="_blank">RedSpark</a></li>
<li><strong><a href="http://seagullproject.org/" target="_blank">Seagull</a></strong></li>
<li><a href="http://solarphp.com/" target="_blank">Solar</a></li>
<li><strong><a href="http://www.symfony-project.org/" target="_blank">Symfony</a></strong></li>
<li><a href="http://www.tekuna.org/" target="_blank">Tekuna</a></li>
<li><strong><a href="http://www.yiiframework.com/" target="_blank">Yii</a></strong></li>
<li><strong><a href="http://framework.zend.com/" target="_blank">Zend Framework</a></strong></li>
<li><a href="http://zoopframework.com/" target="_blank">Zoop Framework</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.antary.de/2011/02/05/linksammlung-php-frameworks/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Adminer &#8211; schlankes Tool zur Verwaltung von Datenbanken</title>
		<link>http://www.antary.de/2010/12/28/adminer-schlankes-tool-zur-verwaltung-von-datenbanken/</link>
		<comments>http://www.antary.de/2010/12/28/adminer-schlankes-tool-zur-verwaltung-von-datenbanken/#comments</comments>
		<pubDate>Tue, 28 Dec 2010 09:38:35 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.antary.de/?p=2595</guid>
		<description><![CDATA[Zur Administration von MySQL-Datenbanken nutzen die meisten Webentwickler sicherlich phpMyAdmin. Was tut man aber wenn phpMyAdmin nicht verfügbar ist und man nur ganz schnell eine Änderung an der Datenbank vornehmen muss? Die rund 900 Dateien von phpMyAdmin mit insgesamt 15 &#8230; <a href="http://www.antary.de/2010/12/28/adminer-schlankes-tool-zur-verwaltung-von-datenbanken/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.antary.de/wp-content/uploads/2010/12/adminer_logo1.png"><img class="alignright size-full wp-image-2598" src="http://www.antary.de/wp-content/uploads/2010/12/adminer_logo1.png" alt="" width="272" height="48" /></a>Zur Administration von MySQL-Datenbanken nutzen die meisten Webentwickler sicherlich phpMyAdmin.<br />
Was tut man aber wenn phpMyAdmin nicht verfügbar ist und man nur ganz schnell eine Änderung an der Datenbank vornehmen muss? Die rund 900 Dateien von phpMyAdmin mit insgesamt 15 MByte auf den Server schieben und installieren?<br />
Eher nicht &#8211; und genau hier kommt das PHP-basierende Tool <a href="http://www.adminer.org/de/" target="_blank"><strong><em>Adminer</em></strong></a> zum Einsatz.</p>
<p>Adminer besteht aus einer einzelnen PHP-Datei und arbeitet mit MySQL, PostgreSQL, SQLite, MS SQL und  Oracle zusammen. Die aktuelle Version 3.1.0 wiegt gerade einmal 292 KByte, kommt mit einer großen Anzahl von Sprachen daher und bietet annähernd dieselbe Funktionalität wie phpMyAdmin. Außerdem ist das Tool frei zur kommerziellen sowie nicht-kommerziellen Verwendung.</p>
<p><a href="http://sourceforge.net/projects/adminer/files/Adminer/Adminer%203.1.0/adminer-3.1.0.php/download" target="_blank"><strong><em>Download Adminer 3.1.0</em></strong></a></p>
<p><span id="more-2595"></span><br />
Nach dem Hochladen der PHP-Datei auf den Webserver, kann man diese einfach mittels URL aufrufen. Adminer fragt nach dem Server, dem Benutzernamen und dem Passwort.</p>
<div id="attachment_2601" class="wp-caption aligncenter" style="width: 625px"><img class="size-full wp-image-2601  " title="1" src="http://www.antary.de/wp-content/uploads/2010/12/adminer_login.png" alt="2" width="615" height="301" /><p class="wp-caption-text">Beim ersten Start fragt Adminer nach den Verbindungsdaten</p></div>
<p style="text-align: left;">Je nach Konfiguration kann man nach dem Login eine neue Datenbank anlegen oder die Benutzerrechte anpassen. Zudem kann man die Prozessliste, MySQL-Variablen und den Status einsehen.</p>
<p style="text-align: left;">Wenn man links eine Datenbank auswählt, kann man wie in phpMyAdmin Tabellen und Datensätze anlegen, bearbeiten, analysieren, optimieren, prüfen, reparieren, entleeren, usw.</p>
<p style="text-align: left;"><a href="http://www.antary.de/wp-content/uploads/2010/12/adminer_start.png"><img class="aligncenter size-full wp-image-2602" src="http://www.antary.de/wp-content/uploads/2010/12/adminer_start.png" alt="" width="578" height="274" /></a>Nach getaner Arbeit sollte man Adminer wieder vom Webspace löschen. Möchte man Adminer dauerhaft auf dem Server lassen, empfiehlt es sich die Datei in ein geschütztes Verzeichnis zu legen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.antary.de/2010/12/28/adminer-schlankes-tool-zur-verwaltung-von-datenbanken/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP Benchmark-Klasse</title>
		<link>http://www.antary.de/2010/10/31/php-benchmark-klasse/</link>
		<comments>http://www.antary.de/2010/10/31/php-benchmark-klasse/#comments</comments>
		<pubDate>Sat, 30 Oct 2010 23:03:00 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.antary.de/?p=2433</guid>
		<description><![CDATA[In manchen Situationen kann eine kleine Benchmark-Klasse für PHP ganz sinnvoll sein. Beispielsweise kann man damit sehen, wie lange die Laufzeit bestimmter Codeabschnitte ist. Hier die Klasse: Hier noch eine kleine Erklärung, wie man die Klasse nutzt:]]></description>
			<content:encoded><![CDATA[<p>In manchen Situationen kann eine kleine Benchmark-Klasse für PHP ganz sinnvoll sein. Beispielsweise kann man damit sehen, wie lange die Laufzeit bestimmter Codeabschnitte ist.<br />
Hier die Klasse:</p>
<pre class="brush: php; title: ; notranslate">
/**
 * Benchmark-Klasse um Laufzeit von PHP-Code zu überprüfen
 */

class Benchmark {
	private $starttime;
	private $stoptime;
	private $resulttime;

	public function start() {
		$this-&gt;starttime = microtime(true);
	}

	public function stop() {
		$this-&gt;stoptime = microtime(true);
	}

	public function result() {
		$this-&gt;resulttime = $this-&gt;stoptime-$this-&gt;starttime;
		return $this-&gt;resulttime;
	}
}
</pre>
<p>Hier noch eine kleine Erklärung, wie man die Klasse nutzt:</p>
<pre class="brush: php; title: ; notranslate">
// Objekt erzeugen
$Benchmark = new Benchmark();

// Startzeit festlegen
$Benchmark-&gt;start();

// Endzeit festlegen
$Benchmark-&gt;stop();

// Laufzeit mit vier Nachkommastellen ausgeben
echo 'Laufzeit: '.number_format($Benchmark-&gt;result(),4).' sec.';
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.antary.de/2010/10/31/php-benchmark-klasse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Webseite optimieren &#8211; HTTP-Requests reduzieren</title>
		<link>http://www.antary.de/2010/01/03/webseite-optimieren-http-requests-reduzieren/</link>
		<comments>http://www.antary.de/2010/01/03/webseite-optimieren-http-requests-reduzieren/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 11:32:23 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.antary.de/?p=1718</guid>
		<description><![CDATA[Viele Webseiten besitzen oft lange Ladezeiten. Das kann mitunter viele Ursachen haben. Ein häufig augtretendes Problem ist aber, dass oft recht viele HTTP-Requests gemacht werden werden. Heutzutage benötigen größere Seiten locker 40 Requests und mehr. Es muss für jedes Bild, &#8230; <a href="http://www.antary.de/2010/01/03/webseite-optimieren-http-requests-reduzieren/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Viele Webseiten besitzen oft lange Ladezeiten. Das kann mitunter viele Ursachen haben. Ein häufig augtretendes Problem ist aber, dass oft recht viele HTTP-Requests gemacht werden werden. Heutzutage benötigen größere Seiten locker 40 Requests und mehr.</p>
<p>Es muss für jedes Bild, jede JS- und CSS-Datei eine neue HTTP-Verbindung zwischen Browser und Server geöffnet werden. Da viele Browser oft nur 2-4 parallele HTTP-Requests zulassen, ist dies ein deutlicher Flaschenhals.</p>
<p>Um eine Beschleunigung des Ladevorgangs zu erreichen, könnte man nun entweder die Anzahl der parallelen Requests erhöhen oder die Anzahl der benötigten Requests verringern.</p>
<p>Eine recht einfache Lösung, um die Requests bereits als Developer niedrig zu halten, ist die Kombination von CSS- und JavaScript-Dateien. Auch nachträglich lassen sich mit entsprechenden PHP-Tools deutliche Performancezuwächse erziehlen.</p>
<p>Empfehlenswert ist vor allem <strong><em>minify</em></strong>. Es fügt alle CSS- und JavaScript-Dateien zu jeweils einer Datei zusammen. Beispielsweise hat man im Ursprungszustand drei CSS- und sieben JavaScript-Dateien eingebunden. <strong><em>minify</em></strong> macht daraus eine CSS- und eine JavaScript-Datei. Zusätzlich werden unnötige Leerzeichen und Tabs entfernt und die Dateien werden gzip-kodiert mit optimalen HTTP-Cache-Headern gesendet.<br />
Den Download und eine Dokumentation zu dem Tool findet ihr direkt auf der <a href="http://code.google.com/p/minify/" target="_blank"><em><strong>minify-Homepage</strong></em></a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.antary.de/2010/01/03/webseite-optimieren-http-requests-reduzieren/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

