Zeichenfolgen/-mengen per Regular Expressions ausschließen

Nicht immer wird bei String-Validierungen ein Ausdruck erstellt, der nur die erlaubten Muster und Zeichen enthält. Auch anders herum ist es möglich – bestimmte Zeichenketten (?!) oder Zeichen(^) explizit ausschließen.

Zeichenfolge in einem Muster ausschließen:
.*(?!DiesesAusschliessen).*

Zeichenmenge in einem Muster ausschließen:
[^a-z0-9]

Eine Gruppierung die nicht in das Ergebnis einer Regular Expression einbezogen/selektiert werden soll, aber als Gruppierung geklammert werden muss, kann entsprechend (?:) gekennzeichnet werden:
.*(?:GruppeNichtSelekieren).*

E-Mail-Adressen vor Spam-Bots schützen (1) …

Es gibt verschiedene Schutz-Mechanismen um E-Mail-Adressen im Quelltext einer Website vor Spam-Bots zu schützen. Wie effektiv diese wirklich sind, hat Dr. David R. Nadeau in einem Test untersucht. Die Tests sind Bestandteil seiner Artikel-Serie „Effective methods to protect email addresses from spammers

In seinem 1. Test „Spam-Bots durch verschleiern der E-Mail-Adresse stoppen“ folgende Methoden getestet:

  1. Ersetzen des „@“ durch einen Zeichencode
  2. Ersetzen der ganzen Adresse durch Zeichencodes
  3. Ersetzen der Adresse in einem mailto Link mit URL-Zeichencodes
  4. Nutzung von CSS um eine umgekehrte E-Mail-Adresse zurück zu kehren
  5. Nutzung des <bdo> Tags um eine umgekehrte E-Mail-Adresse zurück zu kehren

Das Ergebnis (zusammengefasst):

E-Mail-Adressen durch ASCII-Zeichencodes zu verschleiern (1-3) ist eine verbreitete Methode, die nicht (mehr) erfolgreich wirkt.

Rückwärts geschriebene E-Mail-Adressen (4-5) werden von Spam-Bots meist (noch) nicht erkannt/erfasst. Diese Methode ist nur so lange effektiv, bis sie bekannter wird (Spam-Bots rüsten auch nach).
Zudem hat sie eine schlechte Nutzbarkeit und Zugänglichkeit. Die E-Mail-Adresse wird zwar im Browser ‚richtig‘ herum dargestellt, kann jedoch nur ‚falsch‘ herum über die Zwischenablage kopiert werden. Screenreader können diese ebenfalls nicht ‚umdrehen‘.

Empfehlung: Man sollte sich nicht auf die Verschleierung von E-Mail-Adressen verlassen. Spammer kennen diese Tricks inzwischen.

Quelle: http://www.nadeausoftware.com/articles/2007/05/stop_spammer_…

Weiterleitung von domain.tld zu www.domain.tld

Häufig zeigen die Domains domain.tld und www.domain.tld auf die selben Inhalte. Dies kann als so genannter „Dublicate Content“ gewertet werden.

Um also alle Anfragen an domain.tld auf www.domain.tld weiterzuleiten gibt es die Möglichkeit per .htaccess eine entsprechende Url-Rewrite Regel für eine 301-Weiterleitung („Moved Permanently“) einzurichten.

RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain\.tld$ [NC]
RewriteRule ^(.*)$ http://www.domain.tld/$1 [R=301,L]

Eine 301-Moved-Permanently Weiterleitung weist den Client an, sich die ursprüngliche Adresse (in diesem Fall ohne „www“) nicht zu merken, sondern nur die neue Adresse!

Weitere Informationen zu HTTP Status-Codes beantwortet Wikipedia:
http://de.wikipedia.org/wiki/HTTP-Statuscode

Edit:
Das oben gelistete Rewrite kann auch allgemeiner (es muss keine Domain mehr angegeben werden) gehalten werden, in dem es wie folgt angepasst wird:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(?!www)(.+) [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]

Google Sniplets (Anzeigetext im Suchergebnis)

Ein Sniplet in einem Google Suchergebnis ist die Textvorschau, die zu dem Ergebnis unterhalb des Titels platziert wird.

Warum zeigt Google in einem Suchergebnis zu einer Seite mal den Inhalt der aus dem META-Tag Description und mal einen Auszug aus dem „Content“ einer Seite (leider ist zumeist das erste im Quelltext die Navigation)?

Vermutung: Wenn die Qualität der META-Description gut ist, wird diese verwendet. Reicht die Qualität nicht aus, wird ein Teil aus dem „Content“ der Seite verwendet.

Aber wann ist die Qualität eines Snipplets gut?

Eine Frage die Google selbst beantwortet:
http://googlewebmastercentral-de.blogspot.com/2007/10/wie-ihr-snippets-durch-ein-makeover-der.html

Montag und Sonntag einer Kalenderwoche

Den Montag und den Sonntag einer gegebenen Kalenderwoche kann mit PHP (ab Version 5) einfach wie folgt ermittelt werden:

<?php
$tsMonday = strtotime(date('Y') . 'W' . date('W') . '1'));
$tsSunday = strtotime(date('Y') . 'W' . date('W') . '7'));
?>

Dabei wird ein Datumsstring in der Form ‚2008W411‘ an strtotime() übergeben, also Jahr 2008, KW 41, Tag 1 (Montag).

Andere Tage einer KW können durch anpassen des Tages (1-7) errechnet werden.