Wollen wir uns nun also mal ansehen, wie man die beiden Programmiersprachen AppleScript und PHP zusammenbringen kann. Fangen wir dazu mit einem einfachen Beispiel an: Die PHP-Version über AppleScript ausgeben.
Hinweise:
- Für alle, die noch nie etwas mit AppleScript zu tun hatten: AppleScripts schreibt man im AppleScript Editor. Dieses Programm wird standardmäßig bei jedem Mac OS X mitgeliefert und befindet sich hier: /Programme/Dienstprogramme/AppleScript Editor.app
- Je nachdem, ob man PHP4 oder PHP 5 von MAMP nutzen möchte, muss man einen anderen Pfad angeben.
- Die MAMP-Server müssen zum Ausführen von PHP über AppleScript nicht gestartet werden.
set myCmd to "/Applications/MAMP/bin/php4/bin/php -r \"echo PHP_VERSION;\""
set myResult to do shell script myCmd
-- Ergebnis: "4.4.9"
set myResult to do shell script myCmd
-- Ergebnis: "4.4.9"
Mit PHP5
set myCmd to "/Applications/MAMP/bin/php5/bin/php -r \"echo PHP_VERSION;\""
set myResult to do shell script myCmd
-- Ergebnis: "5.2.11"
set myResult to do shell script myCmd
-- Ergebnis: "5.2.11"
Kommen wir nun zu dem bereits am Anfang genannten Beispiel für das Suchen und Ersetzen. Mit PHP kann man diese Aufgabe über die Funktion str_replace() erledigen. Um es etwas übersichtlicher zu gestalten, speichern wir beim nächsten Beispiel den PHP-Code in eine separate Variable.
Suchen und Ersetzen (mit PHP5):
set myPHP to "echo str_replace('ist', 'war', 'Das ist ein Test.');"
set myCmd to "/Applications/MAMP/bin/php5/bin/php -r \"" & myPHP & "\""
set myResult to do shell script myCmd
-- Ergebnis: "Das war ein Test."
set myCmd to "/Applications/MAMP/bin/php5/bin/php -r \"" & myPHP & "\""
set myResult to do shell script myCmd
-- Ergebnis: "Das war ein Test."
Ein weiteres nützliches Anwendungsbeispiel ist die URL-Kodierung einer Zeichenkette nach RFC 1738:
Variante A:
set myPHP to "echo rawurlencode('Das ist ein Test.');"
set myCmd to "/Applications/MAMP/bin/php5/bin/php -r \"" & myPHP & "\""
set myResult to do shell script myCmd
-- Ergebnis: "Das%20ist%20ein%20Test."
set myCmd to "/Applications/MAMP/bin/php5/bin/php -r \"" & myPHP & "\""
set myResult to do shell script myCmd
-- Ergebnis: "Das%20ist%20ein%20Test."
Variante B:
set myQuotedString to quoted form of "Das ist ein Test."
set myCmd to "/Applications/MAMP/bin/php5/bin/php -r \"echo rawurlencode(" & myQuotedString & ");\""
set myResult to do shell script myCmd
-- Ergebnis: "Das%20ist%20ein%20Test."
set myCmd to "/Applications/MAMP/bin/php5/bin/php -r \"echo rawurlencode(" & myQuotedString & ");\""
set myResult to do shell script myCmd
-- Ergebnis: "Das%20ist%20ein%20Test."

Keine Kommentare:
Kommentar posten