Zur Boardunity Forenstartseite

Zurück   Boardunity & Video Forum » Technik » Programmierung und Datenbanken

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1  
Alt 08.08.2006, 18:59
Benutzerbild von MrNase
Mitglied
 
Registriert seit: 06.2003
Ort: /
Beiträge: 2.639

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!
  #2  
Alt 08.08.2006, 19:38
Benutzerbild von Björn
Boardunity Team
 
Registriert seit: 10.2003
Ort: Rhode
Beiträge: 1.205
Sehen die Links immer so aus, sprich es ändert sich nur die Item nr am ende des Links?

__________________
Björn C. Klein
Welt-Held!
PunkRockNews.de
  #3  
Alt 08.08.2006, 19:56
Benutzerbild von MrNase
Mitglied
 
Registriert seit: 06.2003
Ort: /
Beiträge: 2.639
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.

  #4  
Alt 08.08.2006, 20:28
Benutzerbild von Björn
Boardunity Team
 
Registriert seit: 10.2003
Ort: Rhode
Beiträge: 1.205
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

__________________
Björn C. Klein
Welt-Held!
PunkRockNews.de
  #5  
Alt 08.08.2006, 21:54
Benutzerbild von MrNase
Mitglied
 
Registriert seit: 06.2003
Ort: /
Beiträge: 2.639
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.

  #6  
Alt 08.08.2006, 22:09
Benutzerbild von Björn
Boardunity Team
 
Registriert seit: 10.2003
Ort: Rhode
Beiträge: 1.205
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?

__________________
Björn C. Klein
Welt-Held!
PunkRockNews.de
  #7  
Alt 08.08.2006, 23:10
Benutzerbild von MrNase
Mitglied
 
Registriert seit: 06.2003
Ort: /
Beiträge: 2.639
Nee es funktioniert leider nicht, die Urls bleiben vollkommen unangetastet.

  #8  
Alt 09.08.2006, 06:04
Benutzerbild von Björn
Boardunity Team
 
Registriert seit: 10.2003
Ort: Rhode
Beiträge: 1.205
Naja ich werds mal selber testen wenn ich von der Arbeit heute abend komme..

MfG

__________________
Björn C. Klein
Welt-Held!
PunkRockNews.de
  #9  
Alt 09.08.2006, 06:08
Aktiv (oder so?)
 
Registriert seit: 04.2004
Beiträge: 96
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?

  #10  
Alt 09.08.2006, 10:17
Benutzerbild von MrNase
Mitglied
 
Registriert seit: 06.2003
Ort: /
Beiträge: 2.639
Weil ich das Script mit Greasemonkey zusammen einsetzen will.

  #11  
Alt 11.08.2006, 11:25
Benutzerbild von Jens*
:-)
 
Registriert seit: 07.2003
Ort: Ljubljana
Beiträge: 515
Userscripts.org - Universal Repository kennst du aber oder?

Grüße, Jens

  #12  
Alt 11.08.2006, 11:58
Benutzerbild von MrNase
Mitglied
 
Registriert seit: 06.2003
Ort: /
Beiträge: 2.639
Jupp ist mir bekannt, daher habe ich das Amazon-Teil.

Antwort


Stichworte
-


Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
Gehe zu






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