Pomalé informácie o používateľovi php. Jednoduchá RESTful služba v natívnom PHP

Pomalé informácie o používateľovi php. Jednoduchá RESTful služba v natívnom PHP

Získa objekt WP_User, ktorý obsahuje všetky údaje zadaného používateľa.

Údaje vrátené funkciami plne zodpovedajú poliam databázových tabuliek: wp_users a wp_usermeta (opis tabuľky).

Ide o zásuvnú funkciu – t.j. dá sa nahradiť z pluginu. To znamená, že bude fungovať (pripojiť sa) až po pripojení všetkých pluginov a do tohto bodu funkcia ešte nie je definovaná... Túto a funkcie, ktoré sú na nej závislé, teda nemôžete volať priamo z kódu pluginu. Musia byť zavolané prostredníctvom háku plugins_loaded alebo neskôr, ako je napríklad hák init.

Nahradenie funkcie (override) - v plugine môžete vytvoriť funkciu s rovnakým názvom, potom nahradí aktuálnu funkciu.

✈ 1 krát = 0,000296 s = rýchlo| 50 000 krát = 0,78 s = veľmi rýchlo| PHP 7.1.2RC1, WP 4.7.2

Nie sú tam žiadne háčiky.

Návraty

WP_User/false. Dátový objekt alebo nepravda, ak sa zadaného používateľa nepodarilo nájsť.

Použitie

get_userdata($userrid); $userrid (číslo) (povinné) ID používateľa, ktorého údaje chcete získať.
Predvolená hodnota: nie

Príklady

#1 Ako na výstup dát z prijatého dátového objektu

$user_info = get_userdata(1); echo "Používateľské meno: ". $user_info->user_login . "\n"; echo "Úroveň prístupu: ". $user_info->user_level . "\n"; echo "ID: ". $user_info->ID . "\n"; /* Výstupy: Meno používateľa: admin Úroveň prístupu: 10 ID: 1 */

#1.2 Dáta do premennej

Ďalší príklad, len tu najskôr zapíšeme údaje do premenných a potom ich zobrazíme na obrazovke:

$user = get_userdata(1); $username = $user->user_login; $first_name = $user->first_name; $priezvisko = $user->priezvisko; echo "$first_name $last_name prihlásený na stránku pod prihlasovacím menom: $username."; /* Objekt $user: WP_User Object( => stdClass Object( => 80 => kogian => $P$BJFHKJfUKyWv1TwLOVAENYU0JGNsq. => kogian => [e-mail chránený]=> http://example.com/ => 2016-09-01 00:34:42 => => => kogian) => 80 => Array( => 1) => wp_capabilities => Array( => predplatiteľ) => Pole( => 1 => 1 => 1) => => 1) */

#2 Triedne metódy

Objekt získaný pomocou get_userdata() je inštanciou triedy a má metódy, ktoré možno použiť. Niekedy sa to môže hodiť. Tu je jednoduchý príklad získania používateľskej možnosti pomocou metódy $user->get():

$user = get_userdata(1); echo $username = $user->get("user_login");

Zoznam niektorých metód:

    get($key) - vráti hodnotu opcie;

    has_prop($key) - skontroluje, či je zadaná možnosť nainštalovaná;

    has_cap($cap) – skontroluje, či má používateľ špecifikovanú schopnosť alebo rolu;

    get_role_caps() – získa všetky možnosti roly používateľa a skombinuje ich s individuálnymi možnosťami používateľa;

    add_role($role) - pridá užívateľovi rolu;

    remove_role($role) - odoberie užívateľovi rolu;

  • set_role($role) - nastaví rolu užívateľa;

Poznámky

Tu je niekoľko užitočných hodnôt polí tabuľky wp_users a wp_usermeta, ktoré môžete použiť na načítanie údajov:

  • zobraziť meno

user_meta

  • user_description

    wp_capabilities (pole)

    admin_color (motív panela správcu. Predvolená – aktuálna)

    uzavretá_stránka poštových schránok

  • zdrojová_doména

Treba tiež poznamenať, že od verzie 3.2 sa vrátené údaje mierne zmenili: vracia sa objekt WP_User. Údaje v objekte sú rozdelené do skupín: údaje, čiapky, roly (predtým sa údaje vracali vo všeobecnom zozname).

Vďaka „magickým“ (utilitným) metódam PHP však možno dáta získavať ako predtým, napríklad teraz sú dáta uložené takto: get_userdata(1)->data->rich_editing , ale môžete to získať napr. toto: get_userdata(1)->rich_editing , aj keď var_dump() tento vzťah neukáže.

kód získať používateľské údaje: wp-includes/pluggable.php WP 5.2.2

Tí, ktorí viac či menej vážne študovali PHP vedzte, že existuje jedno veľmi užitočné globálne pole PHP ktorá sa volá $_SERVER. A v tomto článku by som chcel analyzovať najobľúbenejšie kľúče a ich hodnoty v tomto poli, pretože ich znalosť je jednoducho povinná aj pre začiatočníkov PHP programátor.

Predtým ako začneš globálne pole $_SERVER v PHP, hneď vám dám malú nápovedu. Je tam zabudovaná skvelá funkcia PHP, ktorá sa volá phpinfo(). Okamžite uvedieme príklad jeho použitia:

phpinfo();
?>

V dôsledku vykonania tohto jednoduchého skriptu uvidíte obrovskú tabuľku s rôznymi Nastavenia PHP interpreta, vrátane, na konci bude tabuľka hodnôt globálne pole $_SERVER. Zobrazí zoznam všetkých kľúčov a ich zodpovedajúcich hodnôt. Ako vám to môže pomôcť? A faktom je, že ak potrebujete túto alebo tú hodnotu a zabudnete, ako sa kľúč volá, použite funkciu phpinfo() Jeho názov si vždy zapamätáte. Vo všeobecnosti spustíte tento skript a okamžite ma pochopíte.

Teraz prejdime k najpopulárnejším na kľúče poľa $_SERVER:

  • HTTP_USER_AGENT- tento kľúč vám umožňuje zistiť vlastnosti klienta. Vo väčšine prípadov je to určite prehliadač, nie však vždy. A opäť, ak je to prehliadač, tak ktorý, o tom sa dozviete v tejto premennej.
  • HTTP_REFERER- obsahuje absolútnu cestu k tomuto súboru ( PHP skript, HTML stránku), z ktorého sme prešli na tento skript. Zhruba povedané, odkiaľ klient pochádza.
  • SERVER_ADDR - IP adresa server.
  • REMOTE_ADDR - IP adresa zákazník.
  • DOCUMENT_ROOT- fyzická cesta ku koreňovému adresáru stránky. Táto možnosť sa nastavuje cez Konfiguračný súbor servera Apache.
  • SCRIPT_FILENAME- fyzická cesta k volanému skriptu.
  • QUERY_STRING- veľmi užitočná hodnota, ktorá vám umožňuje získať reťazec s požiadavkou a potom môžete tento reťazec analyzovať.
  • REQUEST_URI- ešte užitočnejšia hodnota, ktorá obsahuje nielen samotnú požiadavku, ale aj relatívnu cestu k volanému skriptu z koreňa. Toto sa veľmi často používa na odstránenie duplicity z index.php, teda keď máme takých URL: "http://mysite.ru/index.php"A" http://mysite.ru/“ vedú na jednu stránku a URL iné, teda duplicitné, čo bude mať zlý vplyv na optimalizáciu pre vyhľadávače. A s pomocou REQUEST_URI môžeme určiť: s index.php alebo sa scenár nevolal. A môžeme urobiť presmerovanie s index.php(ak bol prítomný v REQUEST_URI) zapnuté bez index.php. V dôsledku toho pri odosielaní takejto žiadosti: " http://mysite.ru/index.php?id=5“, budeme presmerovaní na URL: "http://mysite.ru/?id=5". To znamená, že sme sa zbavili duplicity odstránením z URL toto index.php.
  • SCRIPT_NAME- relatívna cesta k volanému skriptu.

Možno sú to všetky prvky globálne pole $_SERVER v PHP ktoré sa pravidelne používajú. Musíte ich poznať a vedieť ich použiť v prípade potreby.

$HTTP_SERVER_VARS [odstránené]

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

$_SERVER -- $HTTP_SERVER_VARS [odstránené]Informácie o serveri a prostredí spustenia

Popis

Premenná $_SERVER je pole obsahujúce informácie, ako sú hlavičky skriptov, cesty a umiestnenia. Položky v tomto poli vytvára webový server. Neexistuje žiadna záruka, že každý webový server poskytne niektorú z nich; server môže niektoré z nich vynechať alebo poskytnúť iné, ktoré tu nie sú uvedené. Mnohé z týchto premenných sú však prítomné v špecifikácii » CGI/1.1, takže môžete očakávať, že budú implementované na vašom konkrétnom webovom serveri.

Premenná $HTTP_SERVER_VARS obsahuje rovnaké počiatočné informácie, ale nie je superglobálna. (Všimnite si, že $HTTP_SERVER_VARS a $_SERVER sú rôzne premenné, takže PHP s nimi zaobchádza podľa toho). Všimnite si tiež, že "dlhé polia" boli odstránené v PHP 5.4.0, takže $HTTP_SERVER_VARS už neexistuje.

Indexy

V poli $_SERVER môžete (alebo nemusíte) nájsť ktorýkoľvek z nasledujúcich prvkov. Všimnite si, že ak je PHP spustené na príkazovom riadku, bude dostupných len málo položiek, ak vôbec nejaké.

"PHP_SELF" Názov súboru skriptu, ktorý je momentálne spustený, vzhľadom na koreň dokumentu. Napríklad $_SERVER["PHP_SELF"] v skripte na http://example.com/foo/bar.php bude /foo/bar.php . Konštanta __FILE__ obsahuje úplnú cestu a názov súboru aktuálneho (to znamená pripojeného) súboru. Ak PHP beží na príkazovom riadku, táto premenná obsahuje názov skriptu počnúc PHP 4.3.0. Predtým to nebolo dostupné."argv" Do skriptu bolo odovzdaných množstvo argumentov. Keď je skript spustený na príkazovom riadku, poskytuje prístup k možnostiam príkazového riadka ako v jazyku C. Pri volaní pomocou metódy GET bude toto pole obsahovať reťazec dotazu."argc" Obsahuje počet parametrov odovzdaných skriptu (ak je spustený na príkazovom riadku)."GATEWAY_INTERFACE" Obsahuje verziu špecifikácie CGI používanú serverom; Napríklad" CGI/1.1". "SERVER_ADDR" IP adresa servera, na ktorom beží aktuálny skript."NÁZOV SERVERA" Názov hostiteľa, na ktorom beží aktuálny skript. Ak je skript spustený na virtuálnom hostiteľovi, bude obsahovať názov definovaný pre tohto virtuálneho hostiteľa."SERVER_SOFTWARE" Identifikačný reťazec servera špecifikovaný v hlavičkách, keď dôjde k odpovedi na požiadavku."SERVER_PROTOCOL" Názov a verzia informačného protokolu, prostredníctvom ktorého bola stránka vyžiadaná; Napríklad " HTTP/1.0"; "REQUEST_METHOD" Aká metóda bola použitá na vyžiadanie stránky; Napríklad " GET", "HLAVA", "POST", "PUT".

Komentujte:

PHP skript sa ukončí po odoslaní hlavičiek (to znamená po vykonaní akéhokoľvek výstupu bez ukladania výstupu do vyrovnávacej pamäte), ak bola požiadavka vykonaná pomocou metódy HLAVA.

„REQUEST_TIME“ Časová pečiatka začiatku požiadavky. Dostupné od PHP 5.1.0.„REQUEST_TIME_FLOAT“ Časová pečiatka začiatku požiadavky s presnosťou na mikrosekundy. Dostupné od PHP 5.4.0.„QUERY_STRING“ Reťazec dopytu, ak existuje, ktorý načítal stránku."DOCUMENT_ROOT" Koreňový adresár dokumentu, v ktorom sa spúšťa aktuálny skript, je presne ten, ktorý je špecifikovaný v konfiguračnom súbore servera."HTTP_ACCEPT" Obsah hlavičky Súhlasiť: z aktuálnej žiadosti, ak existuje." HTTP_ACCEPT_CHARSET " Obsah hlavičky Accept-Charset: z aktuálnej žiadosti, ak existuje. Napríklad: " iso-8859-1,*,utf-8". " HTTP_ACCEPT_ENCODING " Obsah hlavičky Accept-Encoding: gzip". " HTTP_ACCEPT_LANGUAGE " Obsah hlavičky Prijímací jazyk: z aktuálnej žiadosti, ak existuje. Napríklad: " en". "HTTP_CONNECTION" Obsah hlavičky Pripojenie: z aktuálnej žiadosti, ak existuje. Napríklad: " Udržať nažive". "HTTP_HOST" Obsah hlavičky Hostiteľ: z aktuálnej žiadosti, ak existuje."HTTP_REFERER" Adresa stránky (ak existuje), ktorá priviedla prehliadač používateľa na túto stránku. Túto hlavičku nastavuje webový prehliadač používateľa. Nie všetky prehliadače ho inštalujú a niektoré vám umožňujú zmeniť obsah hlavičky HTTP_REFERER ako ďalšiu funkciu. Jedným slovom sa mu naozaj nedá veriť." HTTP_USER_AGENT " Obsah hlavičky User-Agent: z aktuálnej žiadosti, ak existuje. Tento riadok obsahuje prehliadač, ktorý používateľ použil na vyžiadanie tejto stránky. Typickým príkladom je riadok: Mozilla/4.5 (X11; U; Linux 2.2.9 i586). Okrem iného môžete túto hodnotu použiť s funkciou get_browser() prispôsobiť výstup vašej stránky možnostiam prehliadača používateľa"HTTPS" Akceptuje neprázdnu hodnotu, ak bola požiadavka uskutočnená prostredníctvom protokolu HTTPS.

Komentujte: Všimnite si, že pri použití ISAPI s IIS bude hodnota vypnuté, ak požiadavka nebola uskutočnená cez HTTPS.

"REMOTE_ADDR" IP adresa, z ktorej si používateľ prezerá aktuálnu stránku."VZDIALENÝ HOSTITEĽ" Vzdialený hostiteľ, z ktorého si používateľ prezerá aktuálnu stránku. Reverzné vyhľadávanie DNS je založené na hodnote premennej REMOTE_ADDR.

Komentujte: Váš webový server musí byť nakonfigurovaný na vytvorenie tejto premennej. Napríklad v Apache potrebujete prítomnosť smernice Vyhľadávanie názvu hostiteľa je zapnuté v súbore httpd.conf, aby bola vytvorená táto premenná. pozri tiež gethostbyaddr().

"REMOTE_PORT" Port na vzdialenom počítači, ktorý sa používa na komunikáciu s webovým serverom."REMOTE_USER" Overený používateľ.„REDIRECT_REMOTE_USER“ Overený používateľ, ak bola požiadavka interne presmerovaná."SCRIPT_FILENAME"

Absolútna cesta k skriptu, ktorý sa práve vykonáva.

Komentujte:

Ak je skript spustený na príkazovom riadku (CLI) pomocou relatívnej cesty, ako je súbor.php alebo ../súbor.php, premenná $_SERVER["SCRIPT_FILENAME"] bude obsahovať relatívnu cestu zadanú používateľom.

"SERVER_ADMIN" Táto premenná získava svoju hodnotu (pre Apache) z direktívy v konfiguračnom súbore servera. Ak je skript spustený na virtuálnom hostiteľovi, bude to hodnota definovaná pre tohto virtuálneho hostiteľa."PORT SERVERA" Port na serverovom počítači, ktorý webový server používa na pripojenie. Pre predvolené nastavenia bude hodnota " 80 "; napríklad pri použití SLL bude táto hodnota taká, ako je nakonfigurovaná pre zabezpečené pripojenia HTTP.

Komentujte: Ak chcete získať fyzický (skutočný) port v Apache 2, musíte ho nainštalovať UseCanonicalName = On A UseCanonicalPhysicalPort = On, inak môže byť táto hodnota nahradená a nevráti skutočnú hodnotu fyzického portu. Spoliehanie sa na túto hodnotu nie je bezpečné v kontexte aplikácií, ktoré vyžadujú zvýšené zabezpečenie.

"SERVER_SIGNATURE" Reťazec obsahujúci verziu servera a názov virtuálneho hostiteľa, ktorý sa pridá na stránky generované serverom, ak je povolený."PATH_TRANSLATED" Cesta k aktuálnemu skriptu založená na súborovom systéme (nie na koreňovom adresári dokumentu) po tom, čo server vykonal akékoľvek mapovanie virtuálneho na skutočné.

Komentujte: Od PHP 4.3.2 už premenná PATH_TRANSLATED nie je implicitne nastavená v Apache 2 SAPI, v porovnaní s Apache verzie 1, kde bola nastavená na rovnakú hodnotu ako premenná SCRIPT_FILENAME, keď ju Apache nepoužíva. Táto zmena bola vykonaná v súlade so špecifikáciou CGI, kde by premenná PATH_TRANSLATED mala existovať iba vtedy, keď je definovaná PATH_INFO. Používatelia Apache 2 môžu použiť smernicu AcceptPathInfo = Zapnuté v konfiguračnom súbore httpd.conf nastavte premennú PATH_INFO.

„SCRIPT_NAME“ Obsahuje cestu k aktuálne vykonávanému skriptu. Je to užitočné pre stránky, ktoré musia ukazovať na seba. Konštanta __FILE__ obsahuje úplnú cestu a názov aktuálneho (t. j. zahrnutého) súboru."REQUEST_URI" Identifikátor URI, ktorý bol odovzdaný na prístup k tejto stránke. Napríklad, " /index.html". "PHP_AUTH_DIGEST" Pri vykonávaní autentifikácie HTTP Digest je tejto premennej priradená hlavička „Autorizácia“, ktorú odosiela klient (táto sa potom musí použiť na príslušnú validáciu)."PHP_AUTH_USER" Keď sa vykoná HTTP autentifikácia, táto premenná sa nastaví na používateľské meno poskytnuté používateľom."PHP_AUTH_PW" Keď sa vykoná overenie HTTP, táto premenná sa nastaví na heslo poskytnuté používateľom.„AUTH_TYPE“ Keď sa vykoná overenie HTTP, táto premenná sa nastaví na typ overenia, ktorý sa používa."PATH_INFO" Obsahuje akúkoľvek cestu zadanú používateľom, ktorá sa nachádza za názvom skriptu, ale pred reťazcom dotazu, ak je k dispozícii. Ak napríklad aktuálny skript vyžaduje adresa URL http://www.example.com/php/path_info.php/some/stuff?foo=bar , potom premenná $_SERVER["PATH_INFO"] bude obsahovať /nejaké veci?>

Výsledkom spustenia tohto príkladu bude niečo také.

pred 1 rokom | 9,8 tis

V programovaní je veľmi bežnou úlohou, keď potrebujete pristupovať na inú stránku cez HTTP alebo HTTPS. V tomto článku sa pozrieme na jednoduchý spôsob, ako splniť túto úlohu pomocou programovacieho jazyka PHP.

Prečo pristupovať na inú stránku pomocou PHP cez HTTP alebo HTTPS?

Dôvodov môže byť niekoľko, napríklad na vašom webe existuje časť funkcionality, ktorá je zodpovedná za pridávanie nových produktov alebo katalógov filmov na váš web.

Nové filmy vychádzajú na plátno takmer každý deň a je lepšie si tento proces zautomatizovať, aby ho robil robot, ktorý to bude robiť zadarmo.

Pri tovare je situácia rovnaká – váš internetový obchod môže mať partnerov, ktorí budú chcieť umiestniť svoj tovar na váš web a z každého predaja produktu vám partneri dajú časť svojho príjmu. Ak má partner niekoľko tisíc produktov a databáza sa neustále aktualizuje, je potrebné automatizovať aj proces pridávania produktov na stránku pomocou programovacieho jazyka PHP.

Príklad prístupu na inú stránku pomocou PHP

V tomto jednoduchom príklade použijeme štandardnú funkciu PHP s názvom file_get_contents().

V odpovedi zo servera VK uvidíte nasledujúce informácie:

( - odpoveď: [ - ( - id: 210700286, - first_name: "Lindsey", - last_name: "Stirling", - bdate: "21.9.1986" - ) - ] )

kde sme získali meno, priezvisko a dátum narodenia používateľa s ID 210700286.

Ako môžeme teraz použiť PHP na získanie týchto informácií a ich konverziu na pole pre pohodlnú ďalšiu prácu?

Pomocou programovacieho jazyka PHP a funkcie file_get_contents() je to veľmi jednoduché!

$user_id- toto je premenná, do ktorej zapíšete ID užívateľa VK,

$info- v tejto premennej ukladáme výsledok prístupu k API stránky VK.COM

Ak máte pole s týmito informáciami, môžete na svojom webe z nejakého dôvodu zobraziť používateľov, ktorí vás zaujímajú, a tiež pomocou , môžete krásne navrhnúť zobrazenie týchto informácií na vašom webe.

Záver

Ako vidíte, pomocou PHP môžete veľmi jednoducho zadávať požiadavky na stránky HTTP a HTTPS a my sme sa pozreli iba na jednu funkciu programovacieho jazyka PHP, pomocou ktorej môžete získať údaje z externej stránky.

V nasledujúcich článkoch sa pozrieme na ďalšiu zaujímavú, no výkonnejšiu funkciu, v ktorej si môžete nastaviť ďalšie parametre, ako je prehliadač, operačný systém a iné, pre ladnejší zážitok z externých stránok.