Wywołuję skrypt PHP za każdym razem, gdy ładuje się strona internetowa. Istnieje jednak parametr, który musi uruchomić skrypt PHP (który normalnie przekazuję w wierszu poleceń, gdy testuję skrypt).
Jak mogę przekazać ten argument za każdym razem, gdy skrypt jest uruchamiany podczas ładowania strony?
php
parameters
Nacięcie
źródło
źródło
Odpowiedzi:
Przypuszczalnie przekazujesz argumenty w wierszu poleceń w następujący sposób:
... a następnie uzyskując do nich dostęp w skrypcie w ten sposób:
To, co musisz zrobić, przekazując argumenty przez HTTP (uzyskując dostęp do skryptu przez Internet), to użyć ciągu zapytania i uzyskać do nich dostęp za pośrednictwem superglobalnej $ _GET:
Przejdź do http://yourdomain.com/path/to/script.php?argument1=arg1&argument2=arg2
... i dostęp:
Jeśli chcesz, aby skrypt działał niezależnie od tego, skąd go wywołujesz (z wiersza poleceń lub z przeglądarki), będziesz potrzebować czegoś takiego:
EDYCJA: jak wskazał Cthulhu w komentarzach, najbardziej bezpośrednim sposobem sprawdzenia, w jakim środowisku wykonujesz pracę, jest użycie stałej PHP_SAPI . Zaktualizowałem odpowiednio kod:
źródło
empty($_GET)
.$_GET
jest predefiniowaną wartością, więc jestem prawie pewien, że jest zawsze ustawiona, ale pusta, jeśli nie ma ustawionych parametrów GET.empty()
zwracafalse
puste ciągi i tablice.$_GET
w rzeczywistości nie jest to ustawione, jeśli skrypt jest wywoływany w kontekście wiersza poleceń.empty()
spowodowałoby to, że szukałby argumentów wiersza poleceń, jeśli dostęp do skryptu odbywa się z sieci WWW bez ciągu zapytania, rzucając w ten sposób więcej powiadomień.PHP_SAPI === 'cli'
..htaccess
jest plikiem Apache - Apache przetwarza przychodzące żądania z dyrektywami w formacie.htaccess
a następnie wywołuje PHP w celu zbudowania odpowiedzi na żądanie. Więc jeśli jesteś w linii poleceń,.htaccess
zostanie całkowicie zignorowany. Jeśli uzyskujesz dostęp do skryptu przez Internet i chcesz dodać nowe argumenty zapytania po otrzymaniu żądania, zwykle jest to zrobione zmod_rewrite
. Jeśli to nie wystarczy, aby odpowiedzieć na Twoje pytanie, proponuję zadać zupełnie nowe pytanie.Jeśli chcesz, aby cały skrypt działał niezależnie od tego, skąd go wywołujesz (wiersz poleceń lub z przeglądarki), będziesz potrzebować czegoś podobnego do następującego:
Aby zadzwonić z wiersza poleceń
chmod 755 /var/www/webroot/index.php
i użyćAby zadzwonić z przeglądarki, użyj
źródło