Hallo!
Wie die meisten Webmaster finanziere ich meine Seite zum Teil über das Amazon-Partnerprogramm. Bei Amazon gibt es aber mittlerweile mehrere verschiedene Link-Varianten und wenn jemand einen Link zu Amazon ins Forum postet, steht dabei natürlich nicht immer die Partner-ID bei.
Deswegen suche ich mit Hilfe durch reguläre Ausdrücke nach einer Routine, die aus allen mir bislang bekannten URL-Varianten den richtigen Partnerlink erstellt. Ich bin ja schon nahe dran, aber noch sind die Ausdrücke zu ungenau im Ersetzen. Ich poste einfach mal was ich habe:
Das Ergebnis sieht eigentlich schon nicht schlecht aus, allerdings wäre es mir lieber, wenn alles nach dem "partnerlink-id" komplett gelöscht wird. So das also nur noch "http://www.amazon.de/exec/obidos/ASIN/B000GIN50I/partnerlink-id/" übrig bleibt.
Kann da zufällig jemand helfen?
Wie die meisten Webmaster finanziere ich meine Seite zum Teil über das Amazon-Partnerprogramm. Bei Amazon gibt es aber mittlerweile mehrere verschiedene Link-Varianten und wenn jemand einen Link zu Amazon ins Forum postet, steht dabei natürlich nicht immer die Partner-ID bei.
Deswegen suche ich mit Hilfe durch reguläre Ausdrücke nach einer Routine, die aus allen mir bislang bekannten URL-Varianten den richtigen Partnerlink erstellt. Ich bin ja schon nahe dran, aber noch sind die Ausdrücke zu ungenau im Ersetzen. Ich poste einfach mal was ich habe:
PHP-Code:
<?php
$string = array();
$string[] = 'http://www.amazon.de/exec/obidos/ASIN/B000GIN50I';
$string[] = '<a href="http://www.amazon.de/exec/obidos/ASIN/B000GIN50I">'
. 'http://www.amazon.de/exec/obidos/ASIN/B000GIN50I</a> und weiterer Text';
$string[] = 'http://www.amazon.de/exec/obidos/ASIN/B000GIN50I/'
. 'ref=amb_link_33125065_1/302-5910331-8793668'
$string[] = '<a href="http://www.amazon.de/exec/obidos/ASIN/B000GIN50I/'
. 'ref=amb_link_33125065_1/302-5910331-8793668">'
. 'http://www.amazon.de/exec/obidos/ASIN/B000GIN50I/ref=amb_link_33125065_1/'
. '302-5910331-8793668</a> und weiterer Text';
$string[] = 'http://www.amazon.de/gp/product/B000GYJUSI/ref=amb_link_macro_34504265/'
. '302-5910331-8793668?ie=UTF8';
$string[] = '<a href="http://www.amazon.de/gp/product/B000GYJUSI/'
. 'ref=amb_link_macro_34504265/302-5910331-8793668?ie=UTF8">'
. 'http://www.amazon.de/gp/product/B000GYJUSI/ref=amb_link_macro_34504265/'
. '302-5910331-8793668?ie=UTF8</a>';
$string[] = 'http://www.amazon.de/Vendetta-Steel-inkl-exklusiv-Amazon/dp/B000GQLQUG/'
. 'sr=1-2/qid=1157647058/ref=pd_bowtega_2/302-5910331-8793668?ie=UTF8&s=dvd';
$string[] = '<a href="http://www.amazon.de/Vendetta-Steel-inkl-exklusiv-Amazon/dp/B000GQLQUG/'
. 'sr=1-2/qid=1157647058/ref=pd_bowtega_2/302-5910331-8793668?ie=UTF8&s=dvd">'
. 'http://www.amazon.de/Vendetta-Steel-inkl-exklusiv-Amazon/dp/B000GQLQUG/sr=1-2/'
. 'qid=1157647058/ref=pd_bowtega_2/302-5910331-8793668?ie=UTF8&s=dvd</a>';
$amaSearch = array();
$amaSearch[] = '/http:\/\/www\.amazon\.de\/exec\/obidos\/ASIN\/([0-9A-Z]+)\/?/';
$amaSearch[] = '/http:\/\/www\.amazon\.de\/gp\/product\/([0-9A-Z]+)\/?/';
$amaSearch[] = '/http:\/\/www\.amazon\.de\/(.*)\/dp\/([0-9A-Z]+)\/?/';
$amaReplace = array();
$amaReplace[] = 'http://www.amazon.de/exec/obidos/ASIN/$1/partnerlink-id/';
$amaReplace[] = 'http://www.amazon.de/exec/obidos/ASIN/$1/partnerlink-id/';
$amaReplace[] = 'http://www.amazon.de/exec/obidos/ASIN/$2/partnerlink-id/';
$max = count($string);
for ( $i = 0; $i < $max; $i++ )
{
echo $string[$i].':<br />'."\n";
echo preg_replace($amaSearch, $amaReplace, $string[$i])."\n";
echo '<hr />'."\n";
}
?>
Kann da zufällig jemand helfen?
Kommentar