<?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/"
	>

<channel>
	<title>MIGHTY MARCUS BLOG</title>
	<atom:link href="http://www.mighty-marcus.de/feed" rel="self" type="application/rss+xml" />
	<link>http://www.mighty-marcus.de</link>
	<description>10 Finger-System Typing ohne jede Ahnung von irgendwas</description>
	<pubDate>Tue, 19 Jan 2010 20:28:05 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Flash XML Socket und Perl Socket Server</title>
		<link>http://www.mighty-marcus.de/flash-xml-socket-und-perl-socket-server/95</link>
		<comments>http://www.mighty-marcus.de/flash-xml-socket-und-perl-socket-server/95#comments</comments>
		<pubDate>Mon, 11 Jan 2010 00:58:54 +0000</pubDate>
		<dc:creator>mighty.marcus</dc:creator>
		
		<category><![CDATA[Programmierung]]></category>

		<category><![CDATA[bayeux]]></category>

		<category><![CDATA[comet]]></category>

		<category><![CDATA[echtzeit]]></category>

		<category><![CDATA[policy file]]></category>

		<category><![CDATA[policy file request]]></category>

		<category><![CDATA[socket server]]></category>

		<category><![CDATA[xml socket server]]></category>

		<guid isPermaLink="false">http://www.mighty-marcus.de/?p=95</guid>
		<description><![CDATA[Irgendwann bin ich auf die Idee gekommen Echtzeitfeatures in meine Singlebörse einzubauen, eine Echtzeit-Onlineliste z.B., oder eine sofortige Benachrichtigung bei Posteingang, Gästebucheinträgen etc. Leider hielt sich mein technisches Know-How in Grenzen und ich wusste nicht wie ich es umsetzen sollte.
Ich probierte verschiedene Möglichkeiten aus wie Ajax Polling oder Flags setzen, war damit aber absolut unzufrieden.
Alle [...]]]></description>
			<content:encoded><![CDATA[<p>Irgendwann bin ich auf die Idee gekommen Echtzeitfeatures in meine Singlebörse einzubauen, eine Echtzeit-Onlineliste z.B., oder eine sofortige Benachrichtigung bei Posteingang, Gästebucheinträgen etc. Leider hielt sich mein technisches Know-How in Grenzen und ich wusste nicht wie ich es umsetzen sollte.<br />
Ich probierte verschiedene Möglichkeiten aus wie Ajax Polling oder Flags setzen, war damit aber absolut unzufrieden.<br />
Alle zehn Sekunden nach Daten zu schauen bringt kein befriedigendes Ergebnis.</p>
<p>Irgendwann bin ich dann im Internet auf einen Blog-Artikel über das Bayeux Protokoll gestoßen, eine Methode mittels des HTTP-Protokolls Daten vom Server empfangen zu können, und zwar ohne Ajax Requests (die Seite mittels Javascript in einem bestimmten Zeitabstand automatisch aktualisieren lassen). Dieses Protokoll, in Anlehnung an Ajax auch Comet genannt (soll wie Ajax ein Reinigungsmittel sein), erlaubt es Daten in Echtzeit zu empfangen. Leider konnte ich es nicht umsetzen, weil ein Java-Server dafür Voraussetzung ist, bzw. es gab auch eine Lösung für Perl, jedoch war hier ein Root-Server Voraussetzung.</p>
<p>Mit meinem gehosteten Webspace konnte ich damit nichts anfangen.</p>
<p>Irgendwann gab ich die Idee dann auf, ich habe sicher monatelang im Internet nach einer Lösung recherchiert. Naja, scheinbar an der falschen Stelle, denn durch Zufall stieß ich auf einen Artikel über Flash XML Sockets und ich fand sogar ein Tutorial wie man sich eine dazugehörigen Server in Perl baut.</p>
<p>Und Perl ist auf meinem Webspace verfügbar&#8230;</p>
<p>Nun ja, ich fing also an Perl zu lernen, und nach kurzer Zeit stieß ich auf POE, ein Perl Framework, welches es einem gerade solche Sachen wie Socket Server zu erstellen sehr erleichtert. Ich glaube Perl heisst Perl Object Environment, es ist ein leicht verständliches (ziemlich) objektorientiertes Framework, das man auch ohne Root-Zugriff installieren kann.<br />
Einfach anstelle von</p>
<p>use POE;</p>
<p>mit</p>
<p>use lib &#8220;dein/absoluter/pfad/zu/POE/&#8221;;<br />
use POE;</p>
<p>includen.</p>
<p>Dieses Framework und die XML Socket Klasse von Flash zusammen mit einer JSXMLSocket Klasse für Javascript haben es mir schließlich doch noch ermöglicht, meine Webseite mit Echtzeitfeatures auszustatten.<br />
Sogar einen Chat habe ich damit gebaut, und man kann andere User direkt anchatten über ein kleines verschiebbares Div.</p>
<p>Die Technik meiner Seite sieht in Etwa so aus: Man loggt sich ein, es wird die Main.php aufgerufen, die einen Flash Film öffnet, der eine Verbindung zum Perl Server herstellt. Gleichzeitig &#8220;verbindet&#8221; sich ein Javascript-Script mit dem Flash Film, was es ermöglicht empfangene Daten direkt an den Browser zu senden um so die Seite zu aktualisieren. Der Flash-Film selbst ist unsichtbar, er sorgt nur für die Verbindung und schickt alle empfangenen Daten zum Javascript-Script, bzw. das Javascript-Script sendet Daten zum Flash-Film, und dieser zum Server.<br />
Die Seiten meiner Webseite werden in einem iframe in der Main.php dargestellt, denn die Main.php muss ja die ganze Zeit verfügbar sein, sonst bricht die Socketverbindung ab.</p>
<p>Serverseitig für das Datenhandling benutze ich Regular Expressions, worin Perl ja sehr schnell arbeitet.<br />
Der Server läuft stabil schon seit Wochen ohne eine einzige Unterbrechung, anscheinend habe ich alles richtig gemacht, keine Speicherlecks etc. und mein Hoster hat sich auch noch nicht beschwert&#8230;. <img src='http://www.mighty-marcus.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
Gut, die paar Hanseln auf meiner Seite muss er schon vertragen.</p>
<p>Momentan bin ich dabei ein Spiel zu programmieren, in Flash/Actionscript 3. Die Objektorientierung ist natürlich für einen der mit PHP angefangen hat schon eine Herausforderung, aber schön langsam kriege ich es raus. Am liebsten aber programmiere ich an meinem Perl-Server rum, da läuft es am geschmeidigsten. Ausserdem mag ich die Perl-Syntax.</p>
<p>Achja, falls jemand jetzt auf die Idee kommt sich auch so einen Socket-Server zu basteln, hier eine kleine Hilfestellung.</p>
<p>Du brauchst nicht unbedingt Java, es geht auch in Perl. (Oder auch Python)<br />
Für Perl empfehle ich auf jeden Fall POE, es ist genial!<br />
Adobe verlangt, dass man ein sogenanntes policy file ausliefert, und zwar über einen Socket.<br />
Dieses policy file muss im xml Format vorliegen.<br />
Damit hatte ich eigentlich die größten Probleme am Anfang, weil auch nirgends genau beschrieben steht, wie man sich so einen policy file Server baut und auch nicht wie dieses policy xml file aussehen soll.</p>
<p>Mit dieser Anleitung schafft ihr es aber sicher:</p>
<p>my $xml = &#8216;[?xml version="1.0"?][!DOCTYPE cross-domain-policy SYSTEM "/xml/dtds/cross-domain-policy.dtd"][cross-domain-policy][site-control permitted-cross-domain-policies="master-only"/][allow-access-from domain="localhost" to-ports="6005" /][/cross-domain-policy]&#8216;;</p>
<p>Sorry, ich habe HTML an, stellt euch einfach die ] und [ als HTML > und < vor.</p>
<p>Das ist das xml file, welches ich in eine Variable gepackt habe.</p>
<p>Über den Flash-Film wird mit:</p>
<p>Security.loadPolicyFile("xmlsocket://localhost:4001");</p>
<p>das policy file xml angefordert.</p>
<p>Du musst natürlich in diesem Beispiel einen Perl Socket Server auf Port 4001 laufen haben, der das File auch ausliefern kann.</p>
<p>Der Flash-Film verbindet sich also auf Port 4001 mit dem Server und bekommt die $xml gesendet, ist zufrieden und gibt nun den Zugriff auf Port 4000 frei, auf dem der eigentliche Socket-Server läuft.</p>
<p>Beispiel: Dein policy Server wartet auf eine Verbindung.<br />
Der Flash-Film beantragt eine Verbindung.<br />
Policy Server accept-&gt;Flash-Film.<br />
Flash Film sendet: [policy-file-request/]<br />
Server-&gt;sendet $xml;<br />
Zugriff auf Port 4000 ist freigegeben.<br />
Verbindung des XML Sockets mit dem Server auf Port 4000.</p>
<p>Übrigens, die Daten die man verwendet müssen nicht wirklich im XML Format sein, ich benutze mein eigenes kleines Protokoll, z.B. [c][hallo ihr pfeifen]. So weiß der Server, aha das ist eine c Chat Nachricht.</p>
<p>Ich hab übrigens mein POE-Skript so geschrieben, dass es sich um beide Server kümmert. In dem Skript wird auf Port 4000 der MainServer gestartet, auf Port 4001 der Policy File Server.</p>
<p>Nun arbeite ich auch noch an einem Spiel, welches über einen anderen Server läuft, jedoch bekommt es das policy file auch von Skript eins.</p>
<p>Ich muss gestehen, ich hätte den Artikel gar nicht anfangen sollen, ich in total müde und habe überhaupt keine Lust mehr. Also macht es gut und immer am Ball bleiben!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mighty-marcus.de/flash-xml-socket-und-perl-socket-server/95/feed</wfw:commentRss>
		</item>
		<item>
		<title>Anruf am Morgen (Leistungsgesellschaft)</title>
		<link>http://www.mighty-marcus.de/anruf-am-morgen-leistungsgesellschaft/93</link>
		<comments>http://www.mighty-marcus.de/anruf-am-morgen-leistungsgesellschaft/93#comments</comments>
		<pubDate>Tue, 06 Oct 2009 08:33:09 +0000</pubDate>
		<dc:creator>mighty.marcus</dc:creator>
		
		<category><![CDATA[Allgemein]]></category>

		<category><![CDATA[geld]]></category>

		<category><![CDATA[konsum]]></category>

		<category><![CDATA[konsumgesellschaft]]></category>

		<category><![CDATA[leistung]]></category>

		<category><![CDATA[leistungsgesellschaft]]></category>

		<guid isPermaLink="false">http://www.mighty-marcus.de/?p=93</guid>
		<description><![CDATA[Heute morgen wurde ich geweckt durch einen Anruf des Alice Hansenet Callcenters. Eine Frau auf Speed überfiel mich im Halbschlaf mit der Frage, ob ich in Zukunft bei Produktveränderungen oder
Produkterweiterungen telefonisch darüber informiert werden möchte. Natürlich sagte ich nein, daraufhin fragte sie mich ob ich dann lieber bei einem Produktwechsel 20 Euro bezahlen wolle.

Sie fragte [...]]]></description>
			<content:encoded><![CDATA[<p>Heute morgen wurde ich geweckt durch einen Anruf des Alice Hansenet Callcenters. Eine Frau auf Speed überfiel mich im Halbschlaf mit der Frage, ob ich in Zukunft bei Produktveränderungen oder<br />
Produkterweiterungen telefonisch darüber informiert werden möchte. Natürlich sagte ich nein, daraufhin fragte sie mich ob ich dann lieber bei einem Produktwechsel 20 Euro bezahlen wolle.<br />
<span id="more-93"></span><br />
Sie fragte mich wieder ob ich bei Produktveränderungen oder<br />
Produkterweiterungen telefonisch darüber informiert werden möchte. Ich sagte „von mir aus“, es ging ja immerhin um 20 Euro, oder sagen wir es ging potentiell um 20 Euro weniger in meiner Geldbörse, unabhängig davon ob ich jemals überhaupt einen Produktwechsel oder eine Produkterweiterung brauche. Dann sagte sie, sie würde die Frage nun wiederholen und aufzeichnen und ich solle mit einem „Ja“ antworten. Ich dachte an die 20 Euro und tat was sie verlangte.<br />
Nachdem sie bekommen hatte, was sie wollte, legte sie schneller auf als sie sich verabschieden konnte, um sich dem nächsten Kundenobjekt ihrer bzw. ihres Arbeitgebers Begierde zuzuwenden.</p>
<p>Das ging alles so schnell, dass es mir nicht gelang kritisch zu handeln. Sie hatte mir einfach die Konsumentenpistole an die Brust gesetzt und mir mit 20 Euro weniger gedroht; sie hat für mich die Entscheidung getroffen, es wäre doch blöd nein zu sagen, und ich ließ mich davon beeindrucken.<br />
Klar, ich war ja auch noch im Halbschlaf und vielleicht bin ich einfach schwach. Jedenfalls hat sie mich überrumpelt.</p>
<p>So, nach dem „Gespräch“ bin ich mir dann wie ein Stück Vieh vorgekommen. Ein Stück Vieh in einer Herde, die heute alle noch gebrandmarkt werden müssen.</p>
<p>Leistungsgesellschaft. Der Mensch an sich zählt nichts. Er ist ein Objekt. Ein ohne weiteres austauschbares Objekt in einem kapitalistischen Projekt.</p>
<p>Klar, das wäre ja an sich nicht schlimm, denn jeder hat sein Privatleben. Aber in mein Privatleben wurde wieder einmal telefonisch eingebrochen und es wurde versucht mich zu überreden, mich zu überzeugen, mich zu manipulieren. Diesmal mit Erfolg.</p>
<p>Jetzt wo ich wach bin und wo ich über die Sache so nachdenke fällt mir ein ich hätte auch ganz anders reagieren können. „Schicken sie mir einen Brief“ hätte ich sagen können und einfach auflegen. Oder ich hätte mich von ihrer 20 Euro Masche nicht beeindrucken lassen sollen und einfach ein zweites mal NEIN sagen. Aber ich bin nur ein dummer Konsument in einer habgierigen Welt, sie wollen dich aussaugen! <img src='http://www.mighty-marcus.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.mighty-marcus.de/anruf-am-morgen-leistungsgesellschaft/93/feed</wfw:commentRss>
		</item>
		<item>
		<title>Internet Explorer italic Bug</title>
		<link>http://www.mighty-marcus.de/internet-explorer-italic-bug/87</link>
		<comments>http://www.mighty-marcus.de/internet-explorer-italic-bug/87#comments</comments>
		<pubDate>Wed, 15 Jul 2009 02:05:56 +0000</pubDate>
		<dc:creator>mighty.marcus</dc:creator>
		
		<category><![CDATA[Webdesign]]></category>

		<category><![CDATA[Browser]]></category>

		<category><![CDATA[Bug]]></category>

		<category><![CDATA[Internet Explorer]]></category>

		<category><![CDATA[Italic]]></category>

		<category><![CDATA[Italic Bug]]></category>

		<guid isPermaLink="false">http://www.mighty-marcus.de/?p=87</guid>
		<description><![CDATA[Ich habe ein dreispaltiges Layout. Ein DIV Container links, ein DIV Container in der Mitte und einer Rechts.
Wenn ich jetzt im linken DIV einen italic Text einfüge, rutscht der ganze rechte DIV nach unten, und zwar dorthin wo der mittlere DIV aufhört.

Hier mal ein Screenshot:

Wenn ich im linken DIV keinen italic Text benutze, sondern einen [...]]]></description>
			<content:encoded><![CDATA[<p>Ich habe ein dreispaltiges Layout. Ein DIV Container links, ein DIV Container in der Mitte und einer Rechts.<br />
Wenn ich jetzt im linken DIV einen italic Text einfüge, rutscht der ganze rechte DIV nach unten, und zwar dorthin wo der mittlere DIV aufhört.<br />
<span id="more-87"></span><br />
Hier mal ein Screenshot:<br />
<img src="http://www.mighty-marcus.de/wp-content/images/div1.jpg" alt="screenshot1" /></p>
<p>Wenn ich im linken DIV keinen italic Text benutze, sondern einen normalen, fetten oder was auch immer:</p>
<p><img src="http://www.mighty-marcus.de/wp-content/images/div2.jpg" alt="screenshot2" /></p>
<p>Ich würde mal sagen, das ist eine saubere Leistung. Immerhin stammen die Bilder hier von Internet Explorer Version 8.0, und der italic Bug trat schon in Version 5.0 auf. Wirklich, eine Glanzleistung.</p>
<p>Aber mal ehrlich, sowas kann doch gar nicht sein&#8230; Man kann doch nicht wirklich peinliche Fehler wie diesen hier über 4 Versionen lang ignorieren.</p>
<p>Der Fehler tritt dadurch auf, dass der Internet Explorer zu dämlich ist, die richtige Breite des DIV Containers zu berechnen, auch wenn diese explizit angegeben ist, sobald sich darin italic geschriebener Text befindet.<br />
Für Layouts bei denen es pixelgenau zugeht, kann ein italic Text also eine Katastrophe heraufbeschwören.</p>
<p>Ich mein, seht euch mal die Bilder an&#8230;</p>
<p>Ich habe ja nichts dagegen, dass der Internet Explorer keinen Spaß versteht und bei der kleinsten Unstimmigkeit im Quellcode einen Fehler ausspuckt oder die Seite erst gar nicht anzeigt: kann man sogar was lernen dabei. Aber solche Bugs wie dieser Italic Bug, sowas muss doch nicht wirklich sein. Immer und immer wieder sorgt dieser unglaublich nervige Browser für Unbehagen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mighty-marcus.de/internet-explorer-italic-bug/87/feed</wfw:commentRss>
		</item>
		<item>
		<title>Keywords in der Url - ein kleiner Test</title>
		<link>http://www.mighty-marcus.de/keywords-in-der-url-ein-kleiner-test/24</link>
		<comments>http://www.mighty-marcus.de/keywords-in-der-url-ein-kleiner-test/24#comments</comments>
		<pubDate>Sun, 15 Feb 2009 20:56:58 +0000</pubDate>
		<dc:creator>mighty.marcus</dc:creator>
		
		<category><![CDATA[SEO]]></category>

		<category><![CDATA[keyword in der url]]></category>

		<category><![CDATA[keywords]]></category>

		<category><![CDATA[keywords in der url]]></category>

		<guid isPermaLink="false">http://www.mighty-marcus.de/?p=24</guid>
		<description><![CDATA[Ich werde hier mal für mich - und alle die es interessiert - mal einen kleinen Test starten.
Und zwar geht es um das Thema Keywords in der Url - bringt es tatsächlich Vorteile für das Ranking? Ich habe mittels PHP zwei zufallsgenerierte Texte erstellt, in denen 420 unterschiedliche Pseudo-Wörter vorkommen. 399 &#8220;Wörter&#8221; davon bestehen ganz [...]]]></description>
			<content:encoded><![CDATA[<p>Ich werde hier mal für mich - und alle die es interessiert - mal einen kleinen Test starten.<br />
Und zwar geht es um das Thema Keywords in der Url - bringt es tatsächlich Vorteile für das Ranking? Ich habe mittels PHP zwei zufallsgenerierte Texte erstellt, in denen 420 unterschiedliche Pseudo-Wörter vorkommen. 399 &#8220;Wörter&#8221; davon bestehen ganz einfach aus zufällig generierten Buchstabenfolgen, die 6 Buchstaben lang sind. 21 mal kommt das Pseudo-Wort &#8220;Deiramantis&#8221; vor, das in diesem Test die Rolle des Keywords spielt, und dessen Keyworddichte 5% ausmacht.<br />
Die Texte sollen keinen Double Content erzeugen sondern ein jeder soll unique sein. Keyworddichte, Länge des Textes und die Postition der Keywords (Das erste sowie jedes 21te Wort) sind aber identisch. <span id="more-24"></span></p>
<p>Wir haben also zwei unterschiedliche Texte, die in Hinblick auf das relevante Keyword jedoch völlig gleich sind.</p>
<p>Der erste Text wird über diesen Artikel über diesen Link: <a href="http://mighty-marcus.de/deiramantis.html" target="_blank">deiramantis</a> für die Suchmaschinen erreichbar sein.</p>
<p>Der zweite Text wird über diesen Artikel über diesen Link: <a href="http://mighty-marcus.de/test007.html" target="_blank">deiramantis</a> für die Suchmaschinen erreichbar sein.</p>
<p>Die Linktexte sind also die gleichen, die Dateinamen - und somit die URL sind aber verschieden. Beim ersten Text ist das Keyword in der Url vorhanden; beim zweiten nicht. Ob es nun eine Rolle spielt, dass der Link zu Text eins eher vorkommt, also die Suchmaschine eher darauf stößt als auf den zweiten Text, lasse ich jetzt mal ausser Acht.</p>
<p>Als Titel und Description werde ich einfach die ersten 5 Pseudo-Wörter des jeweiligen Textes bzw. die ersten 12 Wörter des jeweiligen Textes verwenden. So sind auch Titel und Description unique, obwohl sie eigentlich suchmaschinentechnisch gesehen äquivalent sind. Wichtig ist ja nur das Keyword.</p>
<p>Die Ergebnisse werde ich dann in ein paar Wochen hier posten.</p>
<p>Ach, jetzt habe ich doch glatt vergessen suchmaschinenfreundlich zu schreiben. Also müssen natürlich noch ein paar Keywords rein. HALLO OUT THERE! Hier geht es um das Thema: Keywords in der Url - ein praktischer Test.</p>
<p>Ich tippe mal stark darauf, dass der Text mit dem Keyword Dateinamen das Rennen macht.</p>
<p>UPDATE: Inzwischen wurde die Seite test007.html in den Index aufgenommen, wenn man im index-cache nachsieht sogar schon am 16.02.2009, also einen Tag nach Veröffentlichung dieses Artikels.<br />
Die andere Seite mit dem Keyword im Dateinamen ist allerdings noch nicht aufgetaucht. Das muss man jetzt nicht verstehen, denke ich mal. Heute ist der 24.02.</p>
<p>UPDATE2: 27. Februar.<br />
Die zweite Seite deiramantis.html wurde nun auch in den Index aufgenommen. Momentan belegt sie noch den zweiten Platz. Mal sehen, ob sich das noch ändert.</p>
<p>Momentan sieht es so aus: <a href="http://www.google.de/search?source=ig&#038;hl=de&#038;rlz=&#038;=&#038;q=deiramantis&#038;btnG=Google-Suche&#038;meta=lr%3D" target="_blank">KLICK ME!</a></p>
<p>UPDATE 1. April 2009</p>
<p>Ähm, ja, lasst euch vom Datum (1.April) nicht täuschen. Ich haber gerade bei Google nachgeschaut und hab gesehen, dass sich der deiramantis.html Artikel jetzt doch durchgesetzt hat. Also das Keyword in der URL scheint doch besser bewertet zu werden.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mighty-marcus.de/keywords-in-der-url-ein-kleiner-test/24/feed</wfw:commentRss>
		</item>
		<item>
		<title>Keywords aus dem Text generieren mit PHP</title>
		<link>http://www.mighty-marcus.de/keywords-aus-dem-text-generieren-mit-php/8</link>
		<comments>http://www.mighty-marcus.de/keywords-aus-dem-text-generieren-mit-php/8#comments</comments>
		<pubDate>Mon, 09 Feb 2009 10:18:56 +0000</pubDate>
		<dc:creator>mighty.marcus</dc:creator>
		
		<category><![CDATA[Programmierung]]></category>

		<category><![CDATA[aus dem text]]></category>

		<category><![CDATA[automatisch]]></category>

		<category><![CDATA[generieren]]></category>

		<category><![CDATA[keywords]]></category>

		<category><![CDATA[mit php]]></category>

		<category><![CDATA[preg_match_all]]></category>

		<guid isPermaLink="false">http://www.mighty-marcus.de/?p=8</guid>
		<description><![CDATA[Wie der Titel schon sagt, werde ich euch mal zeigen wie man mittels PHP Keywords aus einem String ziehen kann. Dazu zeige ich euch mein kleines Skript, welches ich für mein Forum geschrieben habe.
Es durchsucht den Text nach Wörtern, die groß geschrieben sind. Ich gehe nämlich davon aus, dass alle Wörter, die groß geschrieben sind, [...]]]></description>
			<content:encoded><![CDATA[<p>Wie der Titel schon sagt, werde ich euch mal zeigen wie man mittels PHP Keywords aus einem String ziehen kann. Dazu zeige ich euch mein kleines Skript, welches ich für mein Forum geschrieben habe.<br />
Es durchsucht den Text nach Wörtern, die groß geschrieben sind. Ich gehe nämlich davon aus, dass alle Wörter, die groß geschrieben sind, wichtig sind. Großgeschriebene Wörter sind ja meist Namen, Orte oder Objekte, kleine meistens nicht.<br />
Klar, die besten Keywords sind die, die man manuell eingibt. Hat man jedoch nicht die Zeit oder Muse dazu, das selbst zu machen, ist so ein Keyword Generator eine gute Wahl.<br />
<span id="more-8"></span><br />
Keyword Meta Tags sollen ja von manchen Suchmaschinen inzwischen ignoriert werden oder zumindest an Bedeutung verloren haben. Anders sieht es jedoch aus, wenn man mit Adsense Werbung anzeigen lässt. Dabei spielen die Meta Tags doch ein wichtige Rolle. Oder denkt an Tag-Wolken. Um die zu erzeugen ist es notwendig, die wichtigsten Wörter herauszufischen und sie je nach Vorkommen unterschiedlich groß darzustellen, evtl. noch mit unterschiedlichen Farben von dunkelgrau bis weiß. Ganz unten könnt ihr euch ein Beispiel ansehen, wie ich es in meinem Forum verwende.<br />
Das müsst ihr dann aber selbst programmieren.</p>
<p>Eine viel bessere Lösung wäre es, nicht nur nach großgeschriebenen Wörtern zu suchen, sondern den Text mit einer Keywords-Bibliothek zu vergleichen. Das ist jedoch mühsam, denn wo kriegt man so eine Keywords Bibliothek her, in der so ziemlich alle Wörter stehen, die wichtig sein könnten? Zweitens würde sicher die Performance darunter leiden, wenn wir den Text mit solch einer riesigen Bibliothek vergleichen würden.</p>
<p>Mein Keyword Generator macht den Job auch ziemlich gut. Ein Problem sind die Leute, die alles klein schreiben, aber mit denen müssen wir halt leben.</p>
<p>Wir fangen einfach mal an und erstellen einen String mit dem Text.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$text</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'Wir schreiben einen Keyword Generator. Man könnte auch sagen es ist ein Keyword Generator Tool, vielleicht schreiben wir einfach mal Keyword-Generator Tool, oder auch Keyword-GENERATOR-Tool, was ja das gleiche ist. Das Keyword in diesem Text ist natürlich KeYwoRD.'</span><span style="color: #339933;">;</span></pre></div></div>

<p>Wir haben jetzt unseren Text, der in der Praxis z.b. aus sämtlichen Forumspostings einer Seite bestehen könnte, so wie es in meinem Forum der Fall ist.</p>
<p>Nun machen wir uns daran, einfach mal alle groß geschriebenen Wörter und Wortkombinationen (bestehend aus maximal 3 aufeinanderfolgenden groß geschriebenen Wörtern) herauszufiltern. Dafür benutzen wir ein Pattern und den PHP Befehl preg_match_all.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$pattern1</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'/\b[A-Z\ÄÖÜ]{1}+[A-Za-z\äüöéèáàúùß]{2,}+ [A-Z\ÄÖÜ]{1}+[A-Za-z\äüöéèáàúùß]{2,}+ [A-Z\ÄÖÜ]{1}+[A-Za-z\äüöéèáàúùß]{2,}+|[A-Z\ÄÖÜ]{1}+[A-Za-z\äüöéèáàúùß]{2,}+ [A-Z\ÄÖÜ]{1}+[A-Za-z\äüöéèáàúùß]{2,}+|[A-Z\ÄÖÜ]{1}+[A-Za-z\äüöéèáàúùß]{2,}+\b/'</span><span style="color: #339933;">;</span> 
<span style="color: #990000;">preg_match_all</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$pattern1</span><span style="color: #339933;">,</span> <span style="color: #000088;">$text</span><span style="color: #339933;">,</span> <span style="color: #000088;">$array1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Nicht erschrecken! Dieses Pattern besteht regex-Mustern, also Mustern, mit denen wir nach Übereinstimmungen suchen können. [A-Z\ÄÖÜ]{1}+[A-Za-z\äüöéèáàúùß]{2,}+ bedeutet einfach, wir suchen nach Wörtern, deren erster Buchstabe groß geschrieben ist, die darauf folgenden Wörter groß oder klein geschrieben sind, und das Wort muss aus mindestens 3 Buchstaben bestehen.<br />
Da wir aber nicht nur einzelne Wörter auslesen wollen, sondern auch Kombinationen aus Wörtern, sagen wir in unserem Muster, dass zuerst nach Wortkombinationen aus drei Wörtern gesucht werden soll - oder nach Kombis mit zwei Wörtern, zum Schluß nach einzelnen Wörtern - in dieser Reihenfolge.</p>
<p>Wir schauen uns mal das Ergebnis an, welches in dem Array $array1[0] gespeichert ist.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">print_r</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$array1</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Das Ergebnis:<br />
Array ( [0] => Wir [1] => Keyword Generator [2] => Man [3] => Keyword Generator Tool [4] => Keyword [5] => Generator Tool [6] => Keyword [7] => GENERATOR [8] => Tool [9] => Das Keyword [10] => Text [11] => KeYwoRD )</p>
<p>Naja, irgendwie ist da etwas schief gelaufen! Wo kommt denn Generator Tool her, oder gar Generator? In unserem Muster steht doch Keyword-Generator Tool, aber wir bekommen nur Generator Tool. Achja, der Bindestrich. Klar, unser Muster ignoriert Keyword-Generator, da es davon ausgeht, dass Wortkombinationen mit einem Leerzeichen getrennt werden. Also ersetzen wir einfach mal alle Binde- und Unterstriche mit einem Leerzeichen, sodaß aus Keyword-Generator Tool ganz einfach Keyword Generator Tool wird.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$text</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'-'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'_'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">' '</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #000088;">$text</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Array ( [0] => Wir [1] => Keyword Generator [2] => Man [3] => Keyword Generator Tool [4] => Keyword Generator Tool [5] => Keyword GENERATOR Tool [6] => Das Keyword [7] => Text [8] => KeYwoRD ) </p>
<p>Ja, so gefällt mir das schon besser.</p>
<p>Jetzt zählen wir die Wörter nach ihrem Vorkommen und sortieren sie auch danach. Das geht ziemlich einfach.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$ausgabe1</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array_count_values</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$array1</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">array_multisort</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ausgabe1</span><span style="color: #339933;">,</span> SORT_DESC<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Nun haben wir ein weiteres Array, nämlich $ausgabe1. Wir sehen uns mal den Inhalt an.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">print_r</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ausgabe1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Array ( [Keyword Generator Tool] => 2 [Text] => 1 [KeYwoRD] => 1 [Das Keyword] => 1 [Keyword GENERATOR Tool] => 1 [Man] => 1 [Wir] => 1 [Keyword Generator] => 1 ) </p>
<p>Aha, wie wir sehen, bestehen die Schlüssel dieses Arrays aus unseren Wörtern, die Werte bestehen aus der Häufigkeit ihres Vorkommens. Demnach kommt Keyword Generator Tool 2 mal vor, Text 1 mal, KeYwoRD auch 1 mal. Moment, das ist doch dumm. KeYwoRD und Keyword ist doch das selbe.<br />
Ja, für Menschen natürlich schon, für einen Computer ist es aber absolut nicht das selbe.</p>
<p>Also was machen wir? Wir lösen dieses Problem ganz einfach so: wir wandeln von Anfang an alle unsere durch das Muster gefundenen Wörter in Kleinbuchstaben um, um dann jeden ersten Buchstaben eines jeden Wortes in einen Großbuchstaben zu verwandeln.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$array1</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array_map</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'ucwords'</span><span style="color: #339933;">,</span> <span style="color: #990000;">array_map</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'strtolower'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$array1</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Ergebnis:<br />
Array ( [Keyword Generator Tool] => 3 [Text] => 1 [Keyword] => 1 [Das Keyword] => 1 [Wir] => 1 [Man] => 1 [Keyword Generator] => 1 ) </p>
<p>Gut, es hat hingehauen. Keyword GENERATOR Tool wurde zu Keyword Generator Tool und kommt nun drei mal vor, statt nur 2 mal wie vorher.</p>
<p>Wir werden jetzt mal einen String erzeugen, den wir dann einfach als META-TAG benutzen können. Die Werte des Arrays, also das Vorkommen der Wörter, interessiert uns jetzt nicht mehr, da wir ja die Worte schon danach geordnet haben. Uns interessieren jetzt die Schlüssel, also die Wörter, die wir für unsere Liste brauchen.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$keywords</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array_keys</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ausgabe1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$keywords</span> <span style="color: #339933;">=</span> <span style="color: #990000;">implode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">', '</span><span style="color: #339933;">,</span><span style="color: #000088;">$keywords</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">echo</span> <span style="color: #000088;">$keywords</span><span style="color: #339933;">;</span></pre></div></div>

<p>Ergebnis:<br />
Keyword Generator Tool, Text, Keyword, Das Keyword, Wir, Man, Keyword Generator</p>
<p>Naja, nicht schlecht, aber auch noch nicht das wahre. Die Wörter &#8220;Wir&#8221;, &#8220;Man&#8221; und auch das &#8220;Das&#8221; haben in unserer Liste nichts verloren. Faul wie wir sind, werden wir sie direkt am Anfang einfach aus dem Text entfernen. Dazu brauchen wir eine sogenannte Stopwords-Liste.</p>
<p>Stopwords sind z.B. das, er, sie, es, wenn, seine, und etc.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$stopwords</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Wir '</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Das '</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Man '</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$text</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$stopwords</span><span style="color: #339933;">,</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><span style="color: #000088;">$text</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Das ist so ziemlich die einfachste Methode, um ungewünschte Wörter zu entfernen. Wir benutzen ganz einfach str_replace und fügen nach jedem Stopword ein Leerezeichen hinzu. So können wir vermeiden, dass aus Wörtern wie &#8220;Manchester&#8221; &#8220;chester&#8221; wird, wenn wir das &#8220;Man&#8221; entfernen, oder aus dem Wort &#8220;Wirtshaus&#8221; &#8220;tshaus&#8221;.<br />
Normalerweise werden diese Stopwords eh klein geschrieben und fallen eh durch unser Suchraster, allerdings kann es vorkommen, dass diese Wörter auch mal groß geschrieben werden. Eben am Satzanfang.</p>
<p>Das einzige Problem ist es, wenn dem &#8220;Wir&#8221; oder &#8220;Das&#8221; oder &#8220;Man&#8221; kein Leerzeichen folgen würde, sonder z.B. ein Komma. Dieses &#8220;Das,&#8221; würde nicht entfernt werden.<br />
Mit preg_replace könnten wir das auch noch hinkriegen, aber erstens müssten wir dann unser ganzes Skript umkrempeln. Ich habe jetzt keine Lust, genauer darauf einzugehen, es hat jedenfalls etwas mit der Reihenfolge meines Skripts zu tun. <img src='http://www.mighty-marcus.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /><br />
Und zweitens geht es auch so, und das wahrscheinlich performance-freundlicher (genau!!). <img src='http://www.mighty-marcus.de/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> </p>
<p>Gut, dann schauen wir mal, wie es jetzt aussieht.</p>
<p>Keyword Generator Tool, Keyword, Text, Keyword Generator</p>
<p>Ok. Bei längeren Texten empfiehlt es sich auch, die Keywords auf maximal 40 Wörter zu beschneiden.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$ausgabe1</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array_slice</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ausgabe1</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">39</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Bis jetzt sieht unser Skript so aus:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$stopwords</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Man '</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Wir '</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Das '</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$text</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'Wir schreiben einen Keyword Generator. Man könnte auch sagen es ist ein Keyword Generator Tool, vielleicht schreiben wir einfach mal Keyword-Generator Tool, oder auch Keyword-GENERATOR-Tool, was ja das gleiche ist. Das Keyword in diesem Text ist natürlich KeYwoRD.'</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$text</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$stopwords</span><span style="color: #339933;">,</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><span style="color: #000088;">$text</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$text</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'-'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'_'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">' '</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #000088;">$text</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$pattern1</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'/\b[A-Z\ÄÖÜ]{1}+[A-Za-z\äüöéèáàúùß]{2,}+ [A-Z\ÄÖÜ]{1}+[A-Za-z\äüöéèáàúùß]{2,}+ [A-Z\ÄÖÜ]{1}+[A-Za-z\äüöéèáàúùß]{2,}+|[A-Z\ÄÖÜ]{1}+[A-Za-z\äüöéèáàúùß]{2,}+ [A-Z\ÄÖÜ]{1}+[A-Za-z\äüöéèáàúùß]{2,}+|[A-Z\ÄÖÜ]{1}+[A-Za-z\äüöéèáàúùß]{2,}+\b/'</span><span style="color: #339933;">;</span> 
<span style="color: #990000;">preg_match_all</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$pattern1</span><span style="color: #339933;">,</span> <span style="color: #000088;">$text</span><span style="color: #339933;">,</span> <span style="color: #000088;">$array1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
<span style="color: #000088;">$array1</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array_map</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'ucwords'</span><span style="color: #339933;">,</span> <span style="color: #990000;">array_map</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'strtolower'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$array1</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$ausgabe1</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array_count_values</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$array1</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$ausgabe1</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array_slice</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ausgabe1</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">39</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  
<span style="color: #990000;">array_multisort</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ausgabe1</span><span style="color: #339933;">,</span> SORT_DESC<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$keywords</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array_keys</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ausgabe1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$keywords</span> <span style="color: #339933;">=</span> <span style="color: #990000;">implode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">', '</span><span style="color: #339933;">,</span><span style="color: #000088;">$keywords</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">echo</span> <span style="color: #000088;">$keywords</span><span style="color: #339933;">;</span></pre></div></div>

<p>Wir können es aber noch besser machen.<br />
Und zwar benutzen wir einfach mehrere Pattern. Das erste Pattern liest alle großgeschriebenen Wörter aus, sowie auch alle Wortkombinationen aus maximal drei aufeinander folgenden großgeschriebenen Wörtern.</p>
<p>Das zweite Pattern liest nur alle Wortkombinationen bestehend aus exakt drei aufeinander folgenden großgeschriebenen Wörtern aus. (Und zwar nicht aus dem ganzen Text sondern aus dem 1. Ergebnis, weil hier schon alles was wir brauchen enthalten ist. Es wäre ja auch blöd viermal den gesamten Text durchzusuchen)</p>
<p>Das dritte Pattern liest nur alle Wortkombinationen bestehend aus exakt zwei aufeinander folgenden großgeschriebenen Wörtern aus. Natürlich aus dem vorigen Ergebnis.</p>
<p>Und das vierte Pattern liest nur alle einzelnen roßgeschriebenen Wörter aus. Natürlich aus dem vorigen Ergebnis.</p>
<p>Dazu poste ich einfach mal das veränderte Skript und erkläre dann, was es damit auf sich hat.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$tags</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'Wir schreiben einen Keyword Generator. Man könnte auch sagen es ist ein Keyword Generator Tool, vielleicht schreiben wir einfach mal Keyword-Generator Tool, oder auch Keyword-GENERATOR-Tool, was ja das gleiche ist. Das Keyword in diesem Text ist natürlich KeYwoRD.'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$pattern1</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'/\b[A-Z\ÄÖÜ]{1}+[A-Za-z\äüöéèáàúùß]{2,}+ [A-Z\ÄÖÜ]{1}+[A-Za-z\äüöéèáàúùß]{2,}+ [A-Z\ÄÖÜ]{1}+[A-Za-z\äüöéèáàúùß]{2,}+|[A-Z\ÄÖÜ]{1}+[A-Za-z\äüöéèáàúùß]{2,}+ [A-Z\ÄÖÜ]{1}+[A-Za-z\äüöéèáàúùß]{2,}+|[A-Z\ÄÖÜ]{1}+[A-Za-z\äüöéèáàúùß]{2,}+\b/'</span><span style="color: #339933;">;</span> 
<span style="color: #000088;">$pattern2</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'/\b[A-Z\ÄÖÜ]{1}+[A-Za-z\äüöéèáàúùß]{2,}+ [A-Z\ÄÖÜ]{1}+[A-Za-z\äüöéèáàúùß]{2,}+ [A-Z\ÄÖÜ]{1}+[A-Za-z\äüöéèáàúùß]{2,}+\b/'</span><span style="color: #339933;">;</span><span style="color: #000088;">$pattern3</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'/\b[A-Z\ÄÖÜ]{1}+[A-Za-z\äüöéèáàúùß]{2,}+ [A-Z\ÄÖÜ]{1}+[A-Za-z\äüöéèáàúùß]{2,}+\b/'</span><span style="color: #339933;">;</span> 
<span style="color: #000088;">$pattern4</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'/\b[A-Z\ÄÖÜ]{1}+[A-Za-z\äüöéèáàúùß]{2,}+\b/'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #990000;">preg_match_all</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$pattern1</span><span style="color: #339933;">,</span> <span style="color: #000088;">$tags</span><span style="color: #339933;">,</span> <span style="color: #000088;">$array1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
<span style="color: #000088;">$tags2</span> <span style="color: #339933;">=</span> <span style="color: #990000;">implode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">', '</span><span style="color: #339933;">,</span><span style="color: #000088;">$array1</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">preg_match_all</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$pattern2</span><span style="color: #339933;">,</span> <span style="color: #000088;">$tags2</span><span style="color: #339933;">,</span> <span style="color: #000088;">$array2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
<span style="color: #000088;">$tags3</span> <span style="color: #339933;">=</span> <span style="color: #990000;">implode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">', '</span><span style="color: #339933;">,</span><span style="color: #000088;">$array1</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">preg_match_all</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$pattern3</span><span style="color: #339933;">,</span> <span style="color: #000088;">$tags3</span><span style="color: #339933;">,</span> <span style="color: #000088;">$array3</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
<span style="color: #000088;">$tags4</span> <span style="color: #339933;">=</span> <span style="color: #990000;">implode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">', '</span><span style="color: #339933;">,</span><span style="color: #000088;">$array1</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">preg_match_all</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$pattern4</span><span style="color: #339933;">,</span> <span style="color: #000088;">$tags4</span><span style="color: #339933;">,</span> <span style="color: #000088;">$array4</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$array1</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array_map</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'ucwords'</span><span style="color: #339933;">,</span> <span style="color: #990000;">array_map</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'strtolower'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$array1</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$array2</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array_map</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'ucwords'</span><span style="color: #339933;">,</span> <span style="color: #990000;">array_map</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'strtolower'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$array2</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$array3</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array_map</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'ucwords'</span><span style="color: #339933;">,</span> <span style="color: #990000;">array_map</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'strtolower'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$array3</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$array4</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array_map</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'ucwords'</span><span style="color: #339933;">,</span> <span style="color: #990000;">array_map</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'strtolower'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$array4</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$ausgabe1</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array_count_values</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$array1</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$ausgabe2</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array_count_values</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$array2</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$ausgabe3</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array_count_values</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$array3</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$ausgabe4</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array_count_values</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$array4</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$new_keys</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array_merge</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ausgabe1</span><span style="color: #339933;">,</span><span style="color: #000088;">$ausgabe2</span><span style="color: #339933;">,</span><span style="color: #000088;">$ausgabe3</span><span style="color: #339933;">,</span><span style="color: #000088;">$ausgabe4</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">array_multisort</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$new_keys</span><span style="color: #339933;">,</span> SORT_DESC<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$new_keys</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array_slice</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$new_keys</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">39</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$keywords</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array_keys</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$new_keys</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$keywords</span> <span style="color: #339933;">=</span> <span style="color: #990000;">implode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">', '</span><span style="color: #339933;">,</span><span style="color: #000088;">$keywords</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Das Ergebnis:</p>
<p>Erstes Skript:<br />
Keyword Generator Tool, Keyword, Text, Keyword Generator</p>
<p>Zweites Skript:<br />
Keyword, Generator, Keyword Generator, Tool, Keyword Generator Tool, Text</p>
<p>Genial, Keyword ist an erster Stelle. Das Generator an zweiter stelle bereitet mir aber doch irgendwie Unbehangen. Um einen Generator geht es hier ja nicht wirklich, oder?</p>
<p>Hm, kurz überlegen. Mit array_merge verbinden wir ja alle $ausgabe Arrays zu einem einzigen Array, das uns dann das Ergebnis liefert. </p>
<p>In $ausgabe1 finden wir alle Wörter und Wortkombinationen. Wenn das Pattern auf eine Wortkombination aus drei Wörtern stößt, wird dieser Treffer gespeichert. Es speichert dann bei Keyword Generator Tool nur &#8220;Keyword Generator Tool&#8221;. &#8220;Generator&#8221; und &#8220;Tool&#8221; wird nicht noch mal gespeichert.<br />
Wenn es aber nicht auf eine Wortkombination aus drei Elementen stößt, schaut es nach, ob es eine Wortkombination aus zwei Worten findet. &#8220;Keyword Generator&#8221; zum Beispiel. Wir auch vorher speichert es &#8220;Keyword Generator&#8221; und fährt mit der Suche fort, ohne sich um den &#8220;Generator&#8221; zu kümmern.</p>
<p>In $ausgabe2 finden wir alle Wortkombinationen aus drei Elementen bestehend. Das zweite Pattern ignoriert jetzt alle einzelnen Wörter und alle Kombis mit zwei Elementen.</p>
<p>In $ausgabe3 finden wir alle Kombis aus zwei Elementen.</p>
<p>In $ausgabe4 finden wir alle einzelnen Wörter, unabhängig davon, ob diese in einer Wortkombination stehen oder nicht. Es findet bei &#8220;Keyword Generator Tool&#8221; einmal &#8220;Keyword&#8221;, einmal &#8220;Generator&#8221; und einmal &#8220;Tool&#8221;.</p>
<p>Mit array_merge($ausgabe1,$ausgabe2,$ausgabe3,$ausgabe4); fügen wir nun alle $ausgaben zusammen, wobei die Werte der jeweils vorherigen $ausgabe von der folgenden Ausgabe überschrieben werden.</p>
<p>Das heisst, steht in $ausgabe1 das Wort Keyword => 4 mal, und in $ausgabe4, dass ja alle einzelnen Wörter zählt, Keyword => 6 mal, wird aus dem Keyword => 4 in $ausgabe1 Keyword => 6.</p>
<p>Und so weiter.</p>
<p>Das Problem ist nun die Sache mit dem Generator. In der ersten $ausgabe1 kommt es gar nicht vor, denn im Text steht es nicht alleine, d.h. es steht immer in einer Kombination. Das ist schon mal gut.<br />
In $ausgabe4 wird aber auf die Kombinationen gepfiffen und es erscheint dann trotzdem im Ergebnis-Array, und zwar nicht nur einmal sondern öfter, weil es ja schon in &#8220;Keyword Generator&#8221; vorkommt, aber auch in &#8220;Keyword Generator Tool&#8221;. Dabei ist dieses &#8220;Generator&#8221;, wenn es alleine steht, unnütz, belegt aber in unserer Keywords-Liste den zweiten Platz.</p>
<p>Das ist gewiss suboptimal. Was könnte man da machen? Die Lösung ist natürlich relativ einfach.<br />
Wir schauen einfach in unserer ersten $ausgabe1 nach, ob das Wort &#8220;Generator&#8221; auch als einzelnes Wort ausserhalb einer Kombi gefunden wurde. Ist dem so, schenken wir ihm die volle Aufmerksamkeit. Ist dem nicht so, ignorieren wir es komplett als einzelnes Wort: Wir lassen es erst gar nicht in unserem Suchergebnis erscheinen.</p>
<p>Dazu schreiben wir einfach vor dem array_merge($ausgabe1,$ausgabe2,$ausgabe3,$ausgabe4); zwei foreach-Schleifen. Die kümmern sich nur um die einzelnden und um die Kombis mit 2 Elementen. Um die 3er Kombis müssen wir uns nicht weiter kümmern, wir können sie danach einfach zum ersten $ausgabe1 dazufügen.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$ausgabe3</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$key</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$value</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ausgabe1</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$key</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #000088;">$ausgabe1</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$key</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$value</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$ausgabe4</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$key</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$value</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ausgabe1</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$key</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #000088;">$ausgabe1</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$key</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$value</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Wir ändern jetzt einfach die Zeile mit</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$new_keys</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array_merge</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ausgabe1</span><span style="color: #339933;">,</span><span style="color: #000088;">$ausgabe2</span><span style="color: #339933;">,</span><span style="color: #000088;">$ausgabe3</span><span style="color: #339933;">,</span><span style="color: #000088;">$ausgabe4</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p> in</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$new_keys</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array_merge</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ausgabe1</span><span style="color: #339933;">,</span><span style="color: #000088;">$ausgabe2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>In den Schleifen steht einfach drin, dass wir für jeden Treffer in den jeweiligen $ausgaben diese mit dem Wert in $ausgabe1 ersetzen - so kann kein in einer Kombi gefundenes &#8220;Generator&#8221; im Ergebnis landen.<br />
Anders ist es, wenn wir im Text einmal das Wort &#8220;Generator&#8221; alleine finden würden. Das ist aber nicht der Fall.</p>
<p>Und das Ergebnis sieht dann so aus:</p>
<p>Keyword, Keyword Generator, Keyword Generator Tool, Text</p>
<p>Das Generator ist weg.</p>
<p>Nehmen wir jetzt mal ein anderes Beispiel als Text.</p>
<p>&#8220;Super Metroid Fans können mit dem Super Metroid Hack Super Metroid Redesign endlich mal ein neues Super Metroid spielen. Metroid ist ja auch ein geiles Spiel! Super Metroid Redesign ist ein Hack vom originalen Super Metroid. Es ist einfach genial.&#8221;</p>
<p>Ergebnis:<br />
Metroid, Super Metroid, Super Metroid Redesign, Hack, Spiel, Super Metroid Hack, Super Metroid Fans</p>
<p>Seht ihr was ich meine? Metroid ist an erster Stelle, weil es auch mal als alleine stehendes Wort gefunden wird. Super ist erst gar nicht dabei? Warum nicht? Weil es im Text nicht ein einziges mal ausserhalb einer Kombination vorkommt. Hack kommt vor, und Spiel kommt auch vor, aber Super nicht. Das finde ich gut, denn Super würde den ersten Platz in unserer Liste belegen, weil es in Kombis öfter auftaucht.</p>
<p>Evtl. werde ich das Skript noch soweit verändern, dass ein alleine stehendes Wort auch öfter Vorkommen muss, um gezählt zu werden.</p>
<p>Denn was passiert, wenn in dem Text zufällig &#8220;Ja, das ist Super!&#8221; vorkommt. Na, die Frage könnt ihr doch selbst beantworten, nehme ich an.</p>
<p>So, jetzt muss ich aber Schluß machen.<br />
Ich hoffe der eine oder andere kann mit diesem Beinahe Tutorial etwas anfangen. Ich weiß, das Skript ist nicht perfekt, aber vermutlich ein guter Ansatz für Newbies, die auch mal so etwas programmieren wollen und nicht nur fertige Skripts einbauen wollen.</p>
<p>Wenn ihr euch für die Sache interessiert könnt ihr irgendwann sicher ein Skript schreiben, dass meins alt aussehen lässt. Viel Spaß dabei. (Ich werde dann mal versuchen es zu verbessern.)</p>
<p>Und wenn ihr kreativ seid, könnt ihr nicht nur Keywords generieren, sondern noch zusätzlich eine Tag-Wolke generieren, so wie diese hier: <a href="http://bayernculture.de/topic48.html">Tag Wolke</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mighty-marcus.de/keywords-aus-dem-text-generieren-mit-php/8/feed</wfw:commentRss>
		</item>
		<item>
		<title>Das perfekte Roulette System!</title>
		<link>http://www.mighty-marcus.de/das-perfekte-roulette-system/6</link>
		<comments>http://www.mighty-marcus.de/das-perfekte-roulette-system/6#comments</comments>
		<pubDate>Mon, 09 Feb 2009 10:16:41 +0000</pubDate>
		<dc:creator>mighty.marcus</dc:creator>
		
		<category><![CDATA[Allgemein]]></category>

		<category><![CDATA[martingale]]></category>

		<category><![CDATA[perfektes roulette system]]></category>

		<category><![CDATA[roulette system]]></category>

		<category><![CDATA[roulettee]]></category>

		<category><![CDATA[system]]></category>

		<guid isPermaLink="false">http://www.mighty-marcus.de/?p=6</guid>
		<description><![CDATA[Im Internet gibt es viele Seiten, die behaupten das perfekte System fürs Roulette-Spielen herausgefunden zu haben. Man braucht dazu nur &#8220;Geld verdienen&#8221; in eine Suchmaschine einzugeben, um sie zu finden.
Mein Neffe hatte mich mal darauf aufmerksam gemacht und wollte mich überzeugen es doch einmal zu versuchen - da er erst 13 Jahre alt ist konnte [...]]]></description>
			<content:encoded><![CDATA[<p>Im Internet gibt es viele Seiten, die behaupten das perfekte System fürs Roulette-Spielen herausgefunden zu haben. Man braucht dazu nur &#8220;Geld verdienen&#8221; in eine Suchmaschine einzugeben, um sie zu finden.</p>
<p>Mein Neffe hatte mich mal darauf aufmerksam gemacht und wollte mich überzeugen es doch einmal zu versuchen - da er erst 13 Jahre alt ist konnte er das nicht selbst tun. Ich habe ihm aber schon damals gesagt, dass dieses System (z.B. <a rel="nofollow" href="http://geld-system.net/">hier</a>) nicht funktioniert, da es davon ausgeht dass man 1. unendlich viel Geld zur Verfügung hat und 2. der maximale Einsatz beschränkt ist - doch dazu später mehr.<span id="more-6"></span></p>
<p>Diese Seiten brüsten sich damit, eine revolutionäre Methode entwickelt zu haben, wie man täglich 500 € gewinnen kann. Auf einer anderen Seite wird diese Methode als Adler-Methode betitelt, obwohl es sich schlichtweg um das einfachste Roulette System überhaupt handelt und eigentlich als <a href="http://de.wikipedia.org/wiki/Martingalespiel">Martingalespiel</a> oder einfach als Aufdoppeln bekannt ist.</p>
<p>Im Groben gesagt funktioniert dieses System so:<br />
Man setzt auf eine einfache Chance, und zwar entweder auf Rot oder Schwarz. Wenn wir auf die richtige Farbe gesetzt haben, gewinnen wir den doppelten Einsatz, wenn nicht verlieren wir den Einsatz.</p>
<p>Wir setzen also bspw. auf Rot 1 Stück. Es kommt Schwarz.<br />
Nun setzen wir 2 Stücke auf Rot. Es kommt wieder Schwarz.<br />
Wir setzen 4 Stücke auf Rot. Es kommt Rot und wir gewinnen 8 Stücke und haben damit insgesamt 1 Stück Gewinn, da wir ja in den 3 Spielen insgesamt 1 + 2 + 4 Stücke gesetzt haben.<br />
D.h. wir verdoppeln den Einsatz so lange, bis wir gewinnen, und wir gewinnen dabei immer ein Stück.</p>
<p>Das hört sich so eigentlich ganz gut an, auch wenn wir immer nur 1 Stück gewinnen. Theoretisch, mit unendlich viel Kapital und wenn es kein Einsatzlimit geben würde, könnte man so auf Dauer nur gewinnen, auch wenn es Tage dauern würde bis man einen ordentlichen Betrag zusammen hätte.</p>
<p>Noch ein Beispiel.</p>
<p>Wir setzen auf Rot und haben 1000 Euro zur Verfügung.</p>
<p>Einsatz            Farbe die gewinnt</p>
<p>1                    Schwarz<br />
2                    Schwarz<br />
4                    Schwarz<br />
8                    Schwarz<br />
16                  0<br />
32                  Schwarz<br />
64                  Schwarz<br />
128                Schwarz<br />
256                Schwarz<br />
512                Schwarz (Für diesen Einsatz fehlen uns 23 Stücke)</p>
<p>Nehmen wir also an es kommt 10 mal hintereinander nicht Rot sondern Schwarz oder 0 (welche weder Rot noch Schwarz ist), dann ist schon beim Einsatz von 256 Stücken Schluss weil wir nicht mehr genug Geld haben um 512 Stücke zu setzen. Wir können höchstens noch 489 Stücke setzen - und es bräuchte nur noch ein weiteres mal Schwarz oder 0 zu kommen und wir hätten alles verspielt.</p>
<p>Natürlich ist es sehr unwahrscheinlich, dass 10 mal hintereinander nicht Rot kommt, aber auch wenn 10 mal hintereinander nicht Rot kommt, ist die Wahrscheinlichkeit, dass jetzt endlich Rot kommt trotzdem nicht höher als 50:50, genau so hoch wie vor dem ersten Spiel.</p>
<p>Das andere Problem ist, dass es Einsatzlimits gibt. Nehmen wir an wir können auf eine einfache Chance nur 100€ setzen, so können wir unseren Einsatz ab 64 nicht mehr verdoppeln, wir können nur 100 setzen.<br />
Wir könnten also unsere Verluste nicht mehr ausgleichen und müssten wieder von vorne anfangen, mühsam immer wieder ein Stück gewinnen und den Verlust wieder ausgleichen, was lange genug dauert um wieder in eine Verlust-Serie zu geraten.</p>
<p>Dieses System ist also eigentlich ziemlicher Mist.</p>
<p>Am Wochenende war mir aber mal langweilig und ich versuchte mein Glück beim Online-Pokern. Ich zahlte 30 $ ein und verspielte das Geld natürlich relativ schnell. Leider konnte ich mich mit dem Verlust der 30 $ nicht abfinden und ich zahlte weitere 30$ ein.<br />
Die verlor ich auch.<br />
Natürlich zahlte ich weitere 30$ ein, denn jetzt würde es klappen, jetzt hatte ich ja den Dreh raus.</p>
<p>Mit 8 übriggebliebenen Dollar wechselte ich dann zum Roulette und setzte gleich alles auf Schwarz. Und verlor.</p>
<p>So nicht, rief ich und zahlte weitere 30 $ ein, denn jetzt würde ich mit dem Martingalespiel mein Geld zurückgewinnen.</p>
<p>Ich versuchte es, jedoch änderte ich die Methode für mich ein wenig ab.<br />
Ich setzte beim ersten Spiel 1 Stück auf Rot, verlor, setzte 2 Stücke auf Rot, verlor, setzte 5 Stücke auf Rot und gewann.<br />
Ich hatte 3 Stücke verloren und 10 Stücke gewonnen, ich hatte also 7 $ gewonnen. Ich machte so weiter, setzte erst 1, dann 2, dann 5, dann 10, sptäer auch 25. Oder ich spielte manchmal nach Gefühl, wenn z.B. 2x hintereinander Schwarz war setzte ich gleich 15, weil ich dachte die Wahrscheinlichkeit dass jetzt meine Farbe kommt ist höher.</p>
<p>Es dauerte wirklich nicht lange und ich hatte 120 $ Dollar gewonnen, hatte also mein ganzes investiertes Geld zurückgewonnen.<br />
Nun wollte ich eigentlich aufhören.</p>
<p>Aber ich dachte, naja ein bisschen Gewinn könnte ja auch nicht schaden, also spielte ich weiter.</p>
<p>Ich kam auf 300 $, dann auf 700 $, immer wieder setzte ich mein Aussteige-Limit höher, ich wollte immer mehr. Und es war unglaublich wie oft ich gewann.Dann verlor ich wieder einen Teil, rutschte wieder auf 200 ab, kämpfte mich wieder nach oben. Zwischendurch kam auch öfters mal die 0, und ich setzte einfach mal so 25 $ auf 0 - und gewann auf einen Schlag 900 $. Jetzt war ich von 300 $ auf 1200 $ gekommen und ich hörte auf.<br />
Ich veranlasste die Auszahlung und freute mich über meinen Gewinn.</p>
<p>Naja, an diesem Tag habe ich dann immer wieder weitergespielt, also die Auszahlung rückgängig gemacht und das Geld wieder eingesetzt.<br />
Ich rutschte wieder hinab auf 400 $, schaffte es aber wieder auf 1330 $.</p>
<p>Das Problem war nun, dass ich nicht glauben konnte, dass ich einfach sehr viel Glück gehabt hatte nicht alles zu verlieren sondern statt dessen noch mehr zu gewinnen, und so wurde ich immer unvorsichtiger, setzte auch einfach mal so zwischendrin 100 $.<br />
Mein Auftrag lautete nun die Bank zu sprengen, denn ich war einfach der King, ich hatte das richtige System, den richtigen Riecher, einfach alles an meinem Spiel war perfekt.</p>
<p>Bei 1500 $ würde ich aufhören, und ich schaffte es nach langem hin und her auch. Nun gut, nur noch ein paar Spiele, ich hatte es ohnehin schon geschafft.<br />
Ich war bei 1760 $ angelangt und wollte daraus nur noch 1800 $ machen.</p>
<p>Es hat nicht funktioniert. Es kam eine Serie Schwarz, 11 mal Schwarz und 2 x 0, also 13 x nicht Rot.<br />
Ich habe alles bis auf den letzten Cent wieder verspielt.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mighty-marcus.de/das-perfekte-roulette-system/6/feed</wfw:commentRss>
		</item>
		<item>
		<title>Wo sind die guten Zombiefilme?</title>
		<link>http://www.mighty-marcus.de/wo-sind-die-guten-zombiefilme/3</link>
		<comments>http://www.mighty-marcus.de/wo-sind-die-guten-zombiefilme/3#comments</comments>
		<pubDate>Mon, 09 Feb 2009 10:12:44 +0000</pubDate>
		<dc:creator>mighty.marcus</dc:creator>
		
		<category><![CDATA[Medien]]></category>

		<category><![CDATA[dawn of the dead]]></category>

		<category><![CDATA[day of the dead]]></category>

		<category><![CDATA[romero]]></category>

		<category><![CDATA[zombie film]]></category>

		<category><![CDATA[zombiefilme]]></category>

		<category><![CDATA[zombies]]></category>

		<category><![CDATA[zombies im kaufhaus]]></category>

		<guid isPermaLink="false">http://www.mighty-marcus.de/?p=3</guid>
		<description><![CDATA[Wo sind die guten Zombie Filme?
Lang, sehr lang ist es her, da kam ich gerade von der Schule nach Hause und machte vorher noch einen Abstecher bei Onkel V., der einen Videorekorder hatte. Ja, damals gab es noch keine DVD-Player für 30 Euro.
Ich hatte bei ihm mal Asterix der Gallier angeschaut. Das schien aber der [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Wo sind die guten Zombie Filme?</strong></p>
<p>Lang, sehr lang ist es her, da kam ich gerade von der Schule nach Hause und machte vorher noch einen Abstecher bei Onkel V., der einen Videorekorder hatte. Ja, damals gab es noch keine DVD-Player für 30 Euro.</p>
<p>Ich hatte bei ihm mal Asterix der Gallier angeschaut. Das schien aber der einzige für Kinder geeignete Film zu sein den er besaß (ich war um die 8 Jahre alt), weshalb er mir dann einige der damals absolut hippen Exploitation-Filme zeigte, wie z.B. diese Kannibalen Filme. Die waren ja nicht schlecht und klar war es für mich damals was besonderes, solche Filme sehen zu dürfen - im Vergleich zu Pumuckl, Captain Future, Tom &amp; Jerry und die ganze andere TV-Kost (die ich aber damals auch liebte).<span id="more-3"></span></p>
<p>Einer dieser Kannibalen Filme ist mir dabei besonders in Erinnerung geblieben - es handelte sich um irgend eine Blondine im Dschungel, die von Menschenfressern gekidnapped wird.Die weiße Göttin der Kannibalen oder so etwas. Wie dem auch sei, wenn ich mir diese Filme heute aus nostalgischen Gründen mal ansehe, wundere ich mich darüber, dass mir dieser Schrott damals gefallen hat. Jedoch bildet ein Film eine besondere Ausnahme.</p>
<p>Nach dem der Kannibalen Film die Kinoleinwände eroberte hatte, revolutionierte ein Mann namens George A. Romero das Menschenfresser Thema mit meinem bis heute absoluten Zombie Lieblingsfilm Dawn of the Dead, der auch in Deutschland unter einer bestimmten Version als Zombies im Kaufhaus erschienen ist. Der Vorgänger Night of the Living Dead war auch nicht zu verachten, aber Zombie I - Dawn of the Dead ist für mich DER Zombie Film überhaupt.</p>
<p>Nie wieder sollte es einen Zombie Film geben, der eine so geniale Atmosphäre einer Zivilisation am Ende ihres Seins aufbauen kann. Alle folgenden Zombie Filme machten den Fehler sich zu sehr auf die Gewaltszenen zu konzentrieren, auf Blut, Gedärme und Brutalität an sich. Romero ging es ja nicht um die Exploitation an sich, er erschuf nicht den Zombie Film der Gewalt willen, sondern diese Form ermöglichte es ihm eine Welt zu zeigen, die sich sprichwörtlich selbst auffrass, sein Film ist eher als Gesellschaftskritik zu verstehen, nicht als Horrorschocker.</p>
<p>Der damals kaum beachtete Regisseur Lucio Fulci drehte die italienischen Billigfilme Ein Zombie hing am Glockenseil, Woodoo - Schreckensinsel der Zombies und  Geisterstadt der Zombies, die selbstzweckhaft die Möglichkeiten auskosteten bei dieser Art von Film Blut spritzen und Gedärme aus Körpern herausreissen zu lassen. Es ging nur um die Darstellung grausamer Gewalt, eine richtige Aussage hatten sie absolut nicht zu bieten. Trotzdem war Fulci frech genug sein Werk Woodoo als Zombi 2 herauszugeben, wenn auch ohne &#8220;ie&#8221;, um den Eindruck zu erwecken, es handele sich dabei um Zombie - Dawn of the Dead 2.</p>
<p>Der wirkliche zweite dritte Teil (dritte Teil, wenn man Night of the Living Dead als ersten Teil zählt) der Zombie Trilogie (sag ich doch) gehört für mich ebenso zu den besten Zombiefilmen die es gibt. Die Endzeitatmosphäre wurde auch hier sehr gut dargestellt. Nun ist auch schon beinahe die gesamte Erdbevölkerung zu Zombies mutiert. Überlebende wohnen in einer unterirdischen Festung. Obwohl der Film auch äusserst brutal ist, geht es trotzdem nicht nur darum Gewalt und Grausamkeit zu zeigen - es geht eher darum, wie die Überlebenden mit der Situation zurecht kommen, wie sie miteinander umgehen. In ihrer unterirdischen Welt versuchen sie Mensch zu bleiben. Militär und Wissenschaftler leben zusammen und versuchen einen Ausweg aus der Misere zu finden - dramatisch wird es, als sich die Beziehung zwischen den Militärs und den Wissenschaftlern immer mehr verschlechtert, bis es zwei gespaltene Gruppen gibt. Sehr, sehr empfehlenswerter Film, nicht nur für Zombie Fans.</p>
<p><img src="http://bayernculture.de/images/Day-of-the-dead-Bub-small.jpg" alt="Day of the Dead - Bub" /><br />
<span style="font-size:10px">Der verrückte Professor aus Day of the Dead will beweisen, dass man die Zombies konditionieren kann. Hier sein Liebling Bub mit Kopfhörer.</span></p>
<p>Mit Return of the Living Dead 1, 2, und 3 kamen dann in den 80ern Zombie Filme auf den Markt, die fast als Komödien anzusehen sind oder doch sehr in diese Richtung gehen - auch wenn Blut und Gedärme natürlich bei einem Zombiefilm nicht fehlen dürfen.</p>
<p>Ich hab mich dann aber lange Zeit nicht mehr mit Zombie Filmen beschäftigt, bis ich 2004 die Neuverfilmung von Dawn of the Dead sah, die ich gar nicht mal schlecht fand. Die Atmosphäre kam in keinster Weise an das Original ran, allein wenn ich jetzt darüber nachdenke überlege ich mir, ob ich ihn mir nicht nach dem Schreiben dieses (allerersten) Artikels meines neuen Blogs noch mal reinziehe. Aber als Actioner ist er durchaus zu gebrauchen. Als echter Zombie Film Fan war es für mich natürlich erst mal ein Schlag ins Gesicht diese rennenden Mutantenzombies zu sehen - nichts ist gruseliger als ein Haufen verwesender, langsam auf dich zuhumpelnder Leichen die nur eins wollen - dich mit Haut und Haar bei lebendigem Leib auffressen! Aber das Remake war mal etwas neues und deshalb vergleiche ich die Filme auch nicht direkt miteinander. Hauptgericht bleibt das Original - aber wenn es mal mit mehr Zucker sein soll, oder mit mehr Pepp, dann ist es auch mal schön sich das Remake reinzuziehen.</p>
<p>Dann kam auch noch 28 Days Later, und ich war wieder vom Zombie Virus infiziert. Zugegeben, ich habe mir zwischendurch schon mal Actioner wie Resident Evil angesehen - der kam im Kino eigentlich ganz gut. Und ich spielte das Spiel auch gern. Aber es war halt wieder nur Zuckerwatte, nicht so ein 3-Gänge-Menue wie Day of the Dead und Dawn of the Dead. Trotzdem hielt ich meine Augen und Ohren auf und guckte im Laufe der Zeit Filme wie The Undead, The Stink of Flesh, Day of the Dead - Contagium, Land of the Dead und sogar Filme wie Planet Terror.</p>
<p>Aber es war halt nicht wirklich das, was ich sehen wollte.</p>
<p>Es wird einfach mal wieder Zeit für einen wirklich guten Zombie Film. Leider konnte ich mich von Romeros neuestem Film Diary of the Dead noch nicht überzeugen, d.h. ich hätte es schon gekonnt, aber den Film gibt es bisher nur auf Englisch - und wahrscheinlich wird das auch so bleiben. Klar kann ich Englisch, aber ich sehe mir Filme lieber an, die in meine Muttersprache synchronisiert sind.</p>
<p>Man sieht also, ich bin ein Zombie Junkie, der - einmal durch Dawn of the Dead angefixt - immer noch nach dem perfekten Zombie Film sucht und immer und immer wieder enttäuscht wird. Vermutlich kann es auch gar keinen Film für mich geben, der Day of the Dead ersetzt, obwohl sich die meisten Zombie Filme auch nicht gerade viel Mühe geben mich zu überzeugen.</p>
<p>Immerhin bleibt mir noch das Vergnügen sporadisch mal wieder einen alten Klassiker einzulegen und nochmal 8 Jahre alt zu sein. Das ist es ja wahrscheinlich, was Nostalgie ausmacht - wir holen uns die Vergangenheit zurück.</p>
<p>(Und ja, ich finde es auch nicht richtig Kindern solche Filme zu zeigen - was sich der gute alte Onkel V. damals wohl dabei gedacht hat? Aber mir haben die Filme gefallen und mir geht es soweit ganz gut.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mighty-marcus.de/wo-sind-die-guten-zombiefilme/3/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
