Julian von Mendel: php-cli + linux + zwischenablage

Hi,

wie kann ich mit einem PHP-Programm, welches in einer Terminal-Emulation unter Linux läuft, die Zwischenablage auslesen?
Am liebsten die Markier-Zwischenablage und nicht die Strg-C-Zwischenablage (wie nennt man das?).
Das Programm soll einfach den augenblicklich markierten Text bei Aufruf weiterverarbeiten können, und ich möchte möglichst einfach auf die Zwischenablage zugreifen.

Vielen Dank für jede Hilfe,
Julian

  1. Moin!

    wie kann ich mit einem PHP-Programm, welches in einer Terminal-Emulation unter Linux läuft, die Zwischenablage auslesen?
    Am liebsten die Markier-Zwischenablage und nicht die Strg-C-Zwischenablage (wie nennt man das?).
    Das Programm soll einfach den augenblicklich markierten Text bei Aufruf weiterverarbeiten können, und ich möchte möglichst einfach auf die Zwischenablage zugreifen.

    Nur mal kurz zur Rekapitulation:

    Du hast ein PHP-CLI-Skript. Das läuft auf einem Linux-Rechner.

    Und du hast einen Windows-Rechner, auf dem ein Terminal-Programm (Telnet oder SSH) läuft, und mit dem du die Kommandozeile bedienst. Und damit auch das Skript aufrufst.

    Und nun willst du vom PHP-Skript aus auf den markierten Text des Windows-Rechners zugreifen?

    Sowas geht nicht. Da wäre wahrscheinlich eine Sonderfunktion deiner Terminal-Emulation, mutmaßlich verfügbar über eine nicht in irgendeinem Standard (z.B. VT-100) definierte Escape-Sequenz, notwendig. Außerdem wäre es eine heftige Sicherheitslücke, wenn ein extern laufendes Programm so einfach mir-nichts-dir-nichts irgendwo markierten Text auslesen könnte.

    PuTTY fügt den Inhalt der Zwischenablage per Mausrechtsklick als Tastatureingabe in das Terminalfenster ein und schreibt per Maus markierten Text auch direkt dort hinein. Ohne Maus tut sich da aber garnichts.

    - Sven Rautenberg

    1. Hi Sven,

      Und du hast einen Windows-Rechner, auf dem ein Terminal-Programm (Telnet oder SSH) läuft, und mit dem du die Kommandozeile bedienst. Und damit auch das Skript aufrufst.

      Und nun willst du vom PHP-Skript aus auf den markierten Text des Windows-Rechners zugreifen?

      Nein, da hast du mich falsch verstanden oder ich mich falsch ausgedrückt oder beides *g*. Ohne Windows-Rechner! Ich habe einen Linux-Rechner, eine Konsole in einem Fenster in der ein PHP-Skript läuft. Wenn ich jetzt in einem anderem Programm einen Text markiere, soll das PHP-Skript den markierten Text weiterverarbeiten können. So ähnlich wie der Klipper, der kann auch markierten Text weiterverarbeiten.

      Schöne Grüße,
      Julian

      1. Moin!

        Und nun willst du vom PHP-Skript aus auf den markierten Text des Windows-Rechners zugreifen?
        Nein, da hast du mich falsch verstanden oder ich mich falsch ausgedrückt oder beides *g*.

        Dann bin ich für "beides".

        Ohne Windows-Rechner! Ich habe einen Linux-Rechner, eine Konsole in einem Fenster in der ein PHP-Skript läuft. Wenn ich jetzt in einem anderem Programm einen Text markiere, soll das PHP-Skript den markierten Text weiterverarbeiten können. So ähnlich wie der Klipper, der kann auch markierten Text weiterverarbeiten.

        Würde mich wundern, wenn das geht. Das Skript ist zwar lokal, aber es müßte ja so Konzepte wie "Zwischenablage" und "andere Fenster" kennen.

        Allein die "Zwischenablage" ist schon problematisch, weil es hier wohl keinen so festen Standard gibt, wie bei Microsoft. Die Zwischenablage ist eine Funktion des jeweiligen X-Windowmanagers - das bedeutet aber auch: Kein X - keine Zwischenablage, oder zumindest nur eine applikationsinterne (so nach dem Motto von joe: Strg-K B (Blockanfang), Strg-K K (Blockende), Strg-K C (copy) oder M (move)).

        Sofern du mit PHP irgendeinen Kontakt zum Windowmanager herstellen kannst, vielleicht über irgendein Toolkit, sei es KDE, Gnome, gtk etc. (um nur ein paar belanglose Stichworte daherzureden), könnte es klappen. Wenn alle Stricke reißen: fsockopen() zum X-Server. :)

        Aber ansonsten würde ich vermuten, dass es an der grundsätzlich anderen Architektur von Linux scheitern könnte. Windows' Unsicherheit hat ja schließlich Gründe. Einer davon dürfte sein, dass jedes Programm jedem anderen Fenster Nachrichten schicken und damit Aktionen starten darf (oder durfte? Was macht NT/XP heutzutage?) - also auch anstelle des Benutzers "Strg-C" drücken, um an die markierten Texte ranzukommen und sofort weiterzuverarbeiten. Wenn vorher die aktuelle Zwischenablage gesichert und hinterher wiederhergestellt wird, merkt auch niemand was davon.

        - Sven Rautenberg