Benutzer:Summer ... hier!/strip-google-string.php
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