Boardunity & Video Forum

Boardunity & Video Forum (https://boardunity.de/)
-   Programmierung und Datenbanken (https://boardunity.de/programmierung-datenbanken-f23.html)
-   -   JS und PHP zusammenbringen (https://boardunity.de/js-php-zusammenbringen-t4220.html)

MrNase 08.08.2006 18:59

JS und PHP zusammenbringen
 
Huhu!

Ich brauche ein JS-Script welches alle eBay-Links einer Website mit dem Link plus Affilinet-ID ersetzt.

Ich habe sowas bislang im JS-Bereich nur für Amazon gefunden:
HTML-Code:

const affiliate = '';
const at_amazon = /(.*\.)?amazon\.(com|[a-z]{2}(\.[a-z]{2})?)$/i;
const aff_links = /(obidos.(ASIN.{12}([^\/]*(=|%3D)[^\/]*\/)*|redirect[^\/]*.(tag=)?))[^\/&]+/i;

if( location.hostname.match( at_amazon ) )
  return;

var i, l, p;
for( i=0; l=document.links[i]; i++ )
{
  if( !l.hostname.match( at_amazon ) || !l.hostname.match( /^www\./i ) )
    continue;
  if( l.href.match( aff_links ) )
    l.href = l.href.replace( aff_links, '$1'+affiliate );
  else if( !l.search )
  {
    p = encodeURIComponent( l.pathname.substring( 1 ) + l.search );
    l.search = '?tag='+ affiliate +'&path='+ p;
    l.pathname = '/exec/obidos/redirect';
  }
}


und dann habe ich für PHP noch folgendes gefunden:
PHP-Code:

$affiliate_code='http://www.qksrv.net/click-your-number-here';

// First, make sure your users haven't manually entered vbb code with no whitespace
$converted preg_replace("/\]/","] ",$post['message']); 

// Next, check to see if the url is a link to a product or category page
preg_match_all('/\[url=\"?(http:\/\/cgi.ebay.com\/ws\/\S+)\/?\"?\]/si'$converted$matches4);
   for(
$i=0;$i<count($matches4[1]);$i++) 
   {
      
// you don't want to reprocess links that already have your tag.   
      
if (!eregi("click-your-number-here",$matches4[1][$i])) 
      {
         
// get the item number
         // Look for an asin number
         
preg_match("/[a-zA-Z0-9]{10}/"$matches4[1][$i],$itemnumber);
         if (
$itemnumber)
         {
            
$matches4[1][$i]='[URL='.$affiliate_code'?loc=http%3A//cgi.ebay.com/ws/eBayISAPI.dll%3FViewItem%26item%3D'$itemnumber[0].']';
         }  

         
$converted=str_replace($matches4[0][$i], $matches4[1][$i], $converted);    
         
$post['message'] = $converted;
       }

    } 


Wie kann ich die PHP-Lösung nun als JS umbauen?!

In meinem Fall muss dann aus:
http://cgi.ebay.de/ws/eBayISAPI.dll?...m=120006508570


Folgendes werden:
http://partners.webmasterplan.com/cl...m=120006508570



Würd mich über Hilfe freuen! :)

Björn 08.08.2006 19:38

Sehen die Links immer so aus, sprich es ändert sich nur die Item nr am ende des Links?

MrNase 08.08.2006 19:56

Hm, hab grad nachgeschaut.. Nein, da ändert sich ne ganze Menge.

Eigentlich müsste das Script überall den Link verändern wenn http:// cgi.ebay. de/ auftaucht. Die häufigsten Urls sind z.B. http:// cgi.ebay. de/Lupo-Tieferlegungs-Federn60-40_W0QQitemZ150017802375QQihZ005QQcategoryZ44149QQ rdZ1QQcmdZViewItem

Urls jeweils ohne Leerzeichen, vBSeo würde sonst die Url zerstückeln. :(

Björn 08.08.2006 20:28

Code:



var i, l, p;
for( i=0; l=document.links[i]; i++ )
{
  if( !l.hostname.match( '(.*)ebay(.*)' ))
    continue;

    l.href = l.href.replace(/http://cgi.ebay.de/ ,'http://partners.webmasterplan.com/click.asp?site=1382&ref=218179&type=html&hnb=24&diurl=http://cgi.ebay.de' );

}

mal ungetestet und seeehr simple

der durchsucht alle linsk nach http://cgi.ebay.de und ersetzt es durch den affili link
mfg

MrNase 08.08.2006 21:54

JA schon, aber er soll ja http:// cgi.ebay. de/Lupo-Tieferlegungs-Federn60-40_W0QQitemZ150017802375QQihZ005QQcategoryZ44149QQ rdZ1QQcmdZViewItem

mit
http:// partners.webmasterplan.com/click.asp?site=1382&ref=218179&type=html&hnb=24&di url=http:// cgi.ebay. de/Lupo-Tieferlegungs-Federn60-40_W0QQitemZ150017802375QQihZ005QQcategoryZ44149QQ rdZ1QQcmdZViewItem

ersetzen oder aber:
http:// cgi.ebay. de/bla

mit
http:// partners.webmasterplan.com/click.asp?site=1382&ref=218179&type=html&hnb=24&di url=http:// cgi.ebay. de/bla


Sorry für meine ungenaue Erklärung, ich kämpfe mit ner Erkältung und ihrer Folgen. :(

Björn 08.08.2006 22:09

ja wenn Die Seite kann nicht aufgerufen werden is, dann sollte er halt mit dem code oben nur den Die Seite kann nicht aufgerufen werden ersetzen und das blablubblablub sollte trotzdem noch da sein..
einfach mal getestet?

MrNase 08.08.2006 23:10

Nee es funktioniert leider nicht, die Urls bleiben vollkommen unangetastet. :)

Björn 09.08.2006 06:04

Naja ich werds mal selber testen wenn ich von der Arbeit heute abend komme..

MfG

Eduard Zintz 09.08.2006 06:08

Eine kleine Frage dazu: Warum generierst du nicht die Links mit PHP? Wenn du schon den Quellcode dafür hast, dann benutze ihn doch auch? :)

MrNase 09.08.2006 10:17

Weil ich das Script mit Greasemonkey zusammen einsetzen will. :)

Jens* 11.08.2006 11:25

Userscripts.org - Universal Repository kennst du aber oder?

Grüße, Jens

MrNase 11.08.2006 11:58

Jupp ist mir bekannt, daher habe ich das Amazon-Teil. ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:02 Uhr.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25