Benutzer:Summer ... hier!/strip-google-string.php

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Nachtrag (bei mir darf der Nachtrag auch am Anfang stehen): unter https://tools.wmflabs.org/url-converter/index.pl ist die Problemlösung dieses Programms als Formular umgesetzt! Benutzer die nicht am Programmieren sonderen an der Problemlösung interessiert sind, sollten das Formular nutzen. Hilfreich sind auch die Infos unter MediaWiki:Spamprotectiontext (vor allem unten auf der Seite).

#!/usr/bin/php -f
<?php 

/*

Problembeschreibung
===================

Kopiert man mit Google-Suche gefundene Treffer (in Firefox beispielsweise 
mit Rechte-Taste-Menü und "Link Kopieren" in die Zwischenablage übertragen 
und anschliessendes Einfügen in ein Wiki-Editierfenster), dann ist die URL 
in eine unförmige Google-URL eingeschlossen. Beispiel: 

  https://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&cad=rja&uact=8&ved=0ahUKEwiYA7ulibjSAhUpYZoKHWmfDm0QFggrMAI&url=https%3A%2F%2Fde.wikipedia.org%2Fwiki%2FWikipedia&usg=AFQjcNGDpsJU385gi87z9Fg8neB2aVJoUg

In dem Beispiel wurde in Google nach Wikipedia gesucht. Um die gesuchte URL 
zu extrahieren muss man sie heraus Schneiden und die Prozentdinger dekodieren. 
Das macht dieses Programm. 

Nachtrag: in Wikipedia:Technik/Werkstatt machte  Benutzer:Mabschaaf darauf 
aufmerksam, das es für Firefox eine Add-On mit Namen "Remove Google Tracking 
for Copy" gibt, dass das gleiche Problem löst. Siehe https://addons.mozilla.org/de/firefox/addon/remove-google-tracking-for-cop/?src=api 

Installation
============

Dieses Programm ist ein Kommandozeilenprogramm und auf unixoiden getestet. Es 
wird auch unter Windows und allen System laufen, auf denen die Programmier- 
sprahe PHP installiert ist (einfachste Installation von PHP reicht). 

Hier aber nur die Installationsbeschreigung für Unixoide. Unter anderen 
Betriebssystemen wird es sehr ähnlich sein. 

1. Einen Texteditor öffnen und diesen Text (von "#!/usr/bin/php" ganz oben 
bis "Hier ist Ende" ganz unten) kopieren.

2. Den Text abspreichern in eine Datei mit Namen "strip-google-string.php".

3. Die Datei "strip-google-string.php" als ausfürbar markieren. Auf 
Kommandozeile geht das mit dem Befehl "chmod u+x ./strip-google-string.php" 
(wenn man sich im Verzeichnis befindet, in der das Programm liegt)

Programmaufruf
==============

Dem Programm wird auf der Kommandozeile einfach die unförmige URL von Google 
übergeben. Beispiel (in dem nach Wikipedia gesucht wurde): 

  ./strip-googel-string.php 'https://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&cad=rja&uact=8&ved=0ahUKEwiYo7ulibjSAhUpYZoKHWmfDm0QFggrMAI&url=https%3A%2F%2Fde.wikipedia.org%2Fwiki%2FWikipedia&usg=AFQjCNGDpsJU385gi87z9Fz8neB2sVJoUg'

Wichtig ist dabei, den String in Hochkommata zu setzen! Die Ausgabe des 
Beispiels wäre dann:

   https://de.wikipedia.org/wiki/Wikipedia   

Epilog
======

Ich schrieb das Programm, weil ich ähnliches auf dem Toolserver der 
Wikipedia nicht fand. Sollte es sowas geben, dann bitte ich um Nachricht 
(ich würde ggf. dieses Programm löschen oder mind. einen Verweis auf 
das Wikipedia Tool geben. 

Und Falls jemand auf den Toolservern etwas in der Art einrichten mag, kann 
er die Programmzeilen unten gerne ohne weiteren Hinweis auf die Quelle 
verwenden (hier habe ich nicht sonderlich hoch geschöpft). Wenn was unklar 
ist einfach (auch per Mail) fragen. 

*/

// Übergabeparameter der Variablen $str zuweisen.
$str = $argv[1];

// Die Positionen von "&url=" (markiert den Anfang unserer URL und  "&usg="
// (steht meist hinter unserer URL) finden
$url_pos = stripos($str, '&url=') + 5; 
$usg_pos = stripos($str, '&usg=');
// Die Variablen $url_pos u. $usg_pos ggf. auf 0 bzw. Länge des Strings setzen
if ($url_pos == 5   ) $url_pos = 0;
if ($usg_pos == NULL) $usg_pos = strlen($str);

// Gesuchte URL aus String herausschneiden
$str = substr( $str , $url_pos, $usg_pos-$url_pos); 

// Endkodieren (die "Prozent-Irgnedwas-Zeichen auflösen")
$str = urldecode($str);

// Ausgabe (wenn wir dieses Prog. in UNIX Pipes verwenden wollen lassen wir
// die Zeilenumbrüche weg ... aber z.Zt. ist händische Auswertung vorgesehen.)
echo "\n   $str   \n\n";

die();
?>

Hier ist Ende