Lanya felhasználói info php. Egyszerű RESTful szolgáltatás natív PHP-ben

Lanya felhasználói info php. Egyszerű RESTful szolgáltatás natív PHP-ben

Lekér egy WP_User objektumot, amely tartalmazza a megadott felhasználó összes adatát.

A függvények által visszaadott adatok teljes mértékben megfelelnek az adatbázistáblák wp_users és wp_usermeta mezőinek (tábla leírása).

Ez egy csatlakoztatható funkció - pl. bővítményből cserélhető. Ez azt jelenti, hogy csak az összes beépülő modul csatlakoztatása után fog működni (csatlakozni), és addig a funkció még nem lett definiálva... Ezért ezt és a tőle függő függvényeket nem hívhatjuk meg közvetlenül a plugin kódjából. Ezeket a plugins_loaded hook segítségével vagy később, például az init hook segítségével kell meghívni.

Függvénycsere (felülírás) - a bővítményben létrehozhat egy azonos nevű függvényt, akkor az lecseréli az aktuális függvényt.

✈ 1 alkalom = 0,000296s = gyors| 50 000-szer = 0,78 s = nagyon gyors| PHP 7.1.2RC1, WP 4.7.2

Nincsenek horgok.

Visszatér

WP_Felhasználó/hamis. Adatobjektum, vagy hamis, ha a megadott felhasználó nem található.

Használat

get_userdata($felhasználói azonosító); $userid (szám) (kötelező) Annak a felhasználónak az azonosítója, akinek az adatait le szeretné kérni.
Alapértelmezett: nem

Példák

#1 Hogyan lehet adatokat kiadni egy fogadott adatobjektumból

$user_info = get_userdata(1); echo "Felhasználónév: " . $user_info->user_login . "\n"; echo "Hozzáférési szint: " . $user_info->user_level . "\n"; echo "ID:" . $user_info->ID . "\n"; /* Kimenetek: Felhasználónév: admin Hozzáférési szint: 10 ID: 1 */

#1.2 Adatok egy változóba

Egy másik példa, csak itt először változókba írjuk az adatokat, majd megjelenítjük a képernyőn:

$user = get_userdata(1); $felhasználónév = $felhasználó->felhasználói_bejelentkezés; $keresztnév = $felhasználó->utónév; $last_name = $felhasználó->last_name; echo "$first_name $last_name bejelentkezve az oldalra a következő bejelentkezési névvel: $felhasználónév."; /* $user objektum: WP_User Object( => stdClass Object( => 80 => kogian => $P$BJFHKJfUKyWv1TwLOVAENYU0JGNsq. => kogian => [e-mail védett]=> http://example.com/ => 2016-09-01 00:34:42 => => => kogian) => 80 => Array( => 1) => wp_capabilities => Array( => előfizető) => Array( => 1 => 1 => 1) => => 1) */

#2 Osztálymódszerek

A get_userdata() által kapott objektum az osztály egy példánya, és vannak használható metódusai. Néha ez jól jöhet. Íme egy egyszerű példa egy felhasználói beállítás lekérésére a $user->get() metódussal:

$user = get_userdata(1); echo $felhasználónév = $felhasználó->get("felhasználói_bejelentkezés");

Néhány módszer listája:

    get($key) - az opció értékét adja vissza;

    has_prop($key) - ellenőrzi, hogy a megadott opció telepítve van-e;

    has_cap($cap) - ellenőrzi, hogy a felhasználó rendelkezik-e a megadott képességgel vagy szerepkörrel;

    get_role_caps() - Megszerzi a felhasználói szerepkör összes képességét, és egyesíti azokat a felhasználó egyéni képességeivel;

    add_role($role) - szerepkört ad a felhasználóhoz;

    remove_role($role) - eltávolít egy szerepet a felhasználóból;

  • set_role($role) - beállítja a felhasználói szerepkört;

Megjegyzések

Íme néhány hasznos wp_users és wp_usermeta táblázat mezőértéke, amelyek segítségével lekérheti az adatokat:

  • megjelenítendő név

user_meta

  • user_description

    wp_capabilities (tömb)

    admin_color (admin panel téma. Alapértelmezett - friss)

    zártpostaládák_oldal

  • forrás_domain

Azt is meg kell jegyezni, hogy a 3.2-es verzió óta a visszaadott adatok némileg megváltoztak: a WP_User objektum kerül visszaadásra. Az objektumban lévő adatok csoportokra vannak osztva: adatok, sapkák, szerepek (korábban az adatok egy általános listában kerültek visszaadásra).

A PHP "varázslatos" (utility) metódusainak köszönhetően azonban az adatok beszerzése ugyanúgy lehetséges, mint korábban, például most a következőképpen tárolódnak az adatok: get_userdata(1)->data->rich_editing , de úgy kaphatod meg, hogy ez: get_userdata(1)->rich_editing , bár a var_dump() nem jeleníti meg ezt a kapcsolatot.

Kód felhasználói adatok lekérése: wp-includes/pluggable.php WP 5.2.2

Akik többé-kevésbé komolyan tanultak PHP tudd, hogy van egy nagyon hasznos globális tömb PHP amelyet úgy hívnak $_SERVER. És ebben a cikkben szeretném elemezni a legnépszerűbb kulcsokat és azok értékeit ebben a tömbben, mivel ezek ismerete még egy kezdő számára is egyszerűen kötelező PHP programozó.

Mielőtt elkezded $_SERVER globális tömb PHP-ben, azonnal adok egy kis tippet. Egy nagyszerű funkció van beépítve PHP, ami az úgynevezett phpinfo(). Azonnal mondjunk példát a használatára:

phpinfo();
?>

Ennek az egyszerű szkriptnek a végrehajtása eredményeként egy hatalmas táblázatot fog látni, amely különféle változatokat tartalmaz PHP interpreter beállítások, beleértve, a végén egy értéktáblázat lesz globális tömb $_SERVER. Felsorolja az összes kulcsot és a hozzájuk tartozó értékeket. Hogyan segíthet ez neked? És a helyzet az, hogy ha szüksége van erre vagy arra az értékre, és elfelejti, hogy mi a kulcs neve, akkor használja a függvényt phpinfo() Mindig emlékezhet a nevére. Általában végrehajtja ezt a szkriptet, és azonnal megért engem.

Most térjünk át a legnépszerűbbre a $_SERVER tömb kulcsaihoz:

  • HTTP_USER_AGENT- ez a kulcs lehetővé teszi az ügyfél jellemzőinek megismerését. A legtöbb esetben ez minden bizonnyal a böngésző, de nem mindig. És még egyszer: ha böngészőről van szó, akkor melyikről, arról ebben a változóban tájékozódhat.
  • HTTP_REFERER- tartalmazza a fájl abszolút elérési útját ( PHP szkript, HTML oldal), amelyről erre a szkriptre váltottunk. Nagyjából, honnan jött az ügyfél.
  • SZERVER_ADDR - IP-cím szerver.
  • REMOTE_ADDR - IP-címügyfél.
  • DOCUMENT_ROOT- fizikai elérési út a webhely gyökérkönyvtárához. Ez az opció a következőn keresztül van beállítva Apache szerver konfigurációs fájl.
  • SCRIPT_FILENAME- fizikai elérési út a hívott szkripthez.
  • QUERY_STRING- egy nagyon hasznos érték, amely lehetővé teszi, hogy egy karakterláncot kapjon egy kéréssel, majd ezt a karakterláncot elemezze.
  • REQUEST_URI- egy még hasznosabb érték, amely nemcsak magát a kérést tartalmazza, hanem a hívott szkript relatív elérési útját is a gyökérből. Ezt nagyon gyakran használják a duplikáció eltávolítására index.php, vagyis amikor nálunk van ilyen URL: "http://mysite.ru/index.php"És" http://mysite.ru/" vezet egy oldalra, és URL-ek eltérő, ezért a duplikáció, ami rossz hatással lesz a keresőoptimalizálásra. És a segítséggel REQUEST_URI meghatározhatjuk: -val index.php vagy nem a forgatókönyvet hívták. És átirányítást végezhetünk a index.php(ha jelen volt REQUEST_URI) nélkül index.php. Ennek eredményeként egy ilyen kérés elküldésekor: " http://mysite.ru/index.php?id=5", átirányításunk lesz ide URL: "http://mysite.ru/?id=5". Vagyis megszabadultunk a duplikációtól azáltal, hogy eltávolítottuk a URL ez index.php.
  • SCRIPT_NAME- relatív elérési út a hívott szkripthez.

Talán ezek mind az elemek $_SERVER globális tömb PHP-ben amelyeket rendszeresen használnak. Ismernie kell őket, és szükség esetén tudnia kell használni őket.

$HTTP_SERVER_VARS [törölt]

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

$_SERVER -- $HTTP_SERVER_VARS [törölt]Információk a szerverről és a végrehajtási környezetről

Leírás

A $_SERVER változó egy olyan tömb, amely olyan információkat tartalmaz, mint a szkript fejlécek, elérési utak és helyek. A tömb bejegyzéseit a webszerver hozza létre. Nincs garancia arra, hogy minden webszerver biztosítja ezeket; a szerver kihagyhat néhányat, vagy megadhat másokat, amelyek itt nem szerepelnek. E változók közül azonban sok megtalálható a » CGI/1.1 specifikációban, így elvárható, hogy az adott webszerveren implementálva legyenek.

A $HTTP_SERVER_VARS változó ugyanazt a kezdeti információt tartalmazza, de nem szuperglobális. (Ne feledje, hogy a $HTTP_SERVER_VARS és a $_SERVER különböző változók, ezért a PHP ennek megfelelően kezeli őket). Vegye figyelembe azt is, hogy a PHP 5.4.0-ban eltávolították a "hosszú tömböket", így a $HTTP_SERVER_VARS már nem létezik.

Indexek

A $_SERVER tömbben a következő elemek bármelyikét megtalálhatja (vagy nem). Ne feledje, hogy kevés elem lesz elérhető (vagy valóban jelentős változást jelent), ha a PHP a parancssorban fut.

"PHP_SELF" Az éppen futó parancsfájl neve a dokumentum gyökéréhez viszonyítva. Például a $_SERVER["PHP_SELF"] a http://example.com/foo/bar.php címen található szkriptben a /foo/bar.php lesz. A __FILE__ konstans tartalmazza az aktuális (vagyis a csatlakoztatott) fájl teljes elérési útját és fájlnevét. Ha a PHP fut a parancssorban, ez a változó tartalmazza a szkript nevét, PHP 4.3.0-tól kezdve. Korábban nem volt elérhető."argv" A szkriptnek átadott argumentumok tömbje. Amikor a szkript a parancssorban fut, C-szerű hozzáférést biztosít a parancssori opciókhoz. Ha a GET metóduson keresztül hívják meg, ez a tömb tartalmazza a lekérdezési karakterláncot."argc" Tartalmazza a szkriptnek átadott paraméterek számát (ha a parancssorban elindult)."GATEWAY_INTERFACE" Tartalmazza a CGI specifikáció kiszolgáló által használt verzióját; Például" CGI/1.1". "SERVER_ADDR" Annak a szervernek az IP-címe, amelyen az aktuális szkript fut."SZERVER NÉV" Annak a gazdagépnek a neve, amelyen az aktuális szkript fut. Ha a szkript egy virtuális gazdagépen fut, ez tartalmazza az adott virtuális gazdagéphez meghatározott nevet."SERVER_SOFTWARE" A fejlécekben megadott szerverazonosító karakterlánc, amikor válasz érkezik egy kérésre."SERVER_PROTOCOL" Annak az információs protokollnak a neve és verziója, amelyen keresztül az oldalt lekérték; Például " HTTP/1.0"; "REQUEST_METHOD" Milyen módszerrel kérték le az oldalt; Például " KAP", "FEJ", "POST", "PUT".

Megjegyzés:

A PHP szkript kilép a fejlécek elküldése után (vagyis bármilyen kimenet végrehajtása után a kimenet pufferelése nélkül), ha a kérés a metódussal történt FEJ.

"REQUEST_TIME" A kérés kezdetének időbélyege. PHP 5.1.0-tól kezdve elérhető."REQUEST_TIME_FLOAT" A kérés kezdetének időbélyege, mikroszekundum pontossággal. PHP 5.4.0-tól kezdve elérhető."QUERY_STRING" Az oldalt lekérő lekérdezési karakterlánc, ha van ilyen."DOCUMENT_ROOT" A dokumentum gyökérkönyvtára, amelyben az aktuális parancsfájl végrehajtásra kerül, pontosan megegyezik a kiszolgáló konfigurációs fájljában megadott könyvtárral."HTTP_ACCEPT" Fejléc tartalma Elfogad: az aktuális kérésből, ha van ilyen."HTTP_ACCEPT_CHARSET" Fejléc tartalma Elfogadás-karakter: az aktuális kérésből, ha van ilyen. Például: " iso-8859-1,*,utf-8". "HTTP_ACCEPT_ENCODING" Fejléc tartalma Elfogadás-kódolás: gzip". "HTTP_ACCEPT_LANGUAGE" Fejléc tartalma Elfogadás-nyelv: az aktuális kérésből, ha van ilyen. Például: " hu". "HTTP_CONNECTION" Fejléc tartalma Kapcsolat: az aktuális kérésből, ha van ilyen. Például: " Életben tartani". "HTTP_HOST" Fejléc tartalma Házigazda: az aktuális kérésből, ha van ilyen."HTTP_REFERER" Annak az oldalnak a címe (ha van), amely a felhasználó böngészőjét erre az oldalra hozta. Ezt a fejlécet a felhasználó webböngészője állítja be. Nem minden böngésző telepíti, és néhány további funkcióként lehetővé teszi a HTTP_REFERER fejléc tartalmának módosítását. Egyszóval tényleg nem lehet megbízni benne."HTTP_USER_AGENT" Fejléc tartalma Felhasználói ügynök: az aktuális kérésből, ha van ilyen. Ez a sor tartalmazza azt a böngészőt, amelyet a felhasználó az oldal lekéréséhez használt. Tipikus példa erre a sor: Mozilla/4.5 (X11; U; Linux 2.2.9 i586). Többek között ezt az értéket használhatja a függvénnyel get_browser() hogy oldala kimenetét a felhasználó böngészőjének képességeihez igazítsa"HTTPS" Nem üres értéket fogad el, ha a kérés a HTTPS protokollon keresztül történt.

Megjegyzés: Vegye figyelembe, hogy ha az ISAPI-t IIS-sel használja, az érték a következő lesz ki, ha a kérés nem HTTPS-en keresztül történt.

"REMOTE_ADDR" Az az IP-cím, amelyről a felhasználó az aktuális oldalt nézi."REMOTE_HOST" Az a távoli gazdagép, amelyről a felhasználó az aktuális oldalt nézi. A fordított DNS-keresés a REMOTE_ADDR változó értékén alapul.

Megjegyzés: A webszervernek be kell állítania ezt a változót. Például az Apache-ban szükség van a direktíva jelenlétére HostnameLookups bekapcsolva a httpd.conf fájlban, így ez a változó létrejön. Lásd még gethostbyaddr().

"REMOTE_PORT" A távoli gép portja, amely a webszerverrel való kommunikációra szolgál."REMOTE_USER" Hitelesített felhasználó."REDIRECT_REMOTE_USER" A hitelesített felhasználó, ha a kérést belsőleg irányították át."SCRIPT_FILENAME"

Az éppen futó szkript abszolút elérési útja.

Megjegyzés:

Ha a szkript a parancssorban (CLI) fut egy relatív elérési út használatával, például file.php vagy ../file.php , akkor a $_SERVER["SCRIPT_FILENAME"] változó tartalmazza a felhasználó által megadott relatív elérési utat.

"SERVER_ADMIN" Ez a változó értékét (Apache esetén) a kiszolgáló konfigurációs fájljában található direktívából kapja. Ha a szkript egy virtuális gazdagépen fut, ez az adott virtuális gazdagéphez meghatározott érték lesz."SZERVER PORT" A szerver számítógép portja, amelyet a webszerver a csatlakozáshoz használ. Az alapértelmezett beállításoknál az érték a következő lesz 80 "; például az SLL használatával ez az érték a biztonságos HTTP-kapcsolatokhoz beállított érték lesz.

Megjegyzés: Ahhoz, hogy fizikai (valódi) portot kapjon az Apache 2-ben, telepítenie kell UseCanonicalName = BeÉs UseCanonicalPhysicalPort = Be, ellenkező esetben ez az érték lecserélhető, és nem adja vissza a fizikai port valós értékét. Erre az értékre hagyatkozni nem biztonságos olyan alkalmazások esetén, amelyek fokozott biztonságot igényelnek.

"SERVER_SIGNATURE" A kiszolgáló verzióját és a virtuális gazdagép nevét tartalmazó karakterlánc, amely hozzáadódik a kiszolgáló által generált oldalakhoz, ha engedélyezve van."PATH_TRANSLATED" Fájlrendszer (nem dokumentum gyökér) alapú elérési útja az aktuális szkripthez, miután a szerver elvégezte a virtuális-valós leképezést.

Megjegyzés: A PHP 4.3.2-től kezdve a PATH_TRANSLATED változó implicit módon nincs beállítva az Apache 2 SAPI-ban, szemben az Apache 1-es verziójával, ahol ugyanarra az értékre volt beállítva, mint a SCRIPT_FILENAME változó, amikor az Apache nem használja. Ez a módosítás a CGI specifikációnak való megfelelés érdekében történt, ahol a PATH_TRANSLATED változó csak akkor létezhet, ha a PATH_INFO meg van adva. Az Apache 2 felhasználói használhatják a direktívát AcceptPathInfo = Be a httpd.conf konfigurációs fájlban a PATH_INFO változó beállításához.

"SCRIPT_NAME" Az éppen futó szkript elérési útját tartalmazza. Ez olyan oldalak esetében hasznos, amelyeknek magukra kell mutatniuk. A __FILE__ konstans tartalmazza az aktuális (azaz benne foglalt) fájl teljes elérési útját és nevét."REQUEST_URI" Az oldal eléréséhez átadott URI. Például, " /index.html". "PHP_AUTH_DIGEST" A HTTP Digest hitelesítés végrehajtásakor ehhez a változóhoz az "Authorization" fejléc van hozzárendelve, amelyet az ügyfél küld el (ezt kell használni a megfelelő érvényesítéshez)."PHP_AUTH_USER" A HTTP-hitelesítés végrehajtásakor ez a változó a felhasználó által megadott felhasználónévre lesz beállítva."PHP_AUTH_PW" HTTP-hitelesítés végrehajtásakor ez a változó a felhasználó által megadott jelszóra lesz beállítva."AUTH_TYPE" HTTP-hitelesítés végrehajtásakor ez a változó a használt hitelesítési típusra lesz beállítva."PATH_INFO" Tartalmaz minden felhasználó által megadott elérési utat, amely a szkript neve után, de a lekérdezési karakterlánc előtt található, ha elérhető. Például, ha az aktuális szkriptet a http://www.example.com/php/path_info.php/some/stuff?foo=bar URL kéri, akkor a $_SERVER["PATH_INFO"] változó tartalmazni fogja /néhány/cucc?>

A példa futtatásának eredménye valami ilyesmi lesz.

1 éve | 9,8K

A programozásban nagyon gyakori feladat az, amikor HTTP-n vagy HTTPS-en keresztül kell elérni egy másik oldalt. Ebben a cikkben egy egyszerű módszert tekintünk meg ennek a feladatnak a PHP programozási nyelv használatával.

Miért érhet el egy másik webhelyet PHP-vel HTTP-n vagy HTTPS-n keresztül?

Több oka is lehet, például a webhelyén a funkcionalitás egy része felelős azért, hogy új termékeket vagy filmkatalógusokat adjon a webhelyéhez.

Szinte minden nap megjelennek új filmek a képernyőn, és jobb ezt a folyamatot automatizálni, hogy egy robot végezze el, aki ingyen megteszi.

Az árukkal is ugyanez a helyzet - webáruházának lehetnek olyan partnerei, akik el szeretnék helyezni áruikat az Ön weboldalán, és minden egyes termékeladásból a partnerek adják bevételük egy részét. Ha egy partnernek több ezer terméke van, és az adatbázis folyamatosan frissül, akkor a termékek oldalra történő felvételének folyamatát is automatizálni kell a PHP programozási nyelv segítségével.

Példa egy másik webhely elérésére PHP használatával

Ebben az egyszerű példában a file_get_contents() nevű szabványos PHP függvényt fogjuk használni.

A VK szerver válaszaként a következő információkat fogja látni:

( - válasz: [ - ( - id: 210700286, - keresztnév: "Lindsey", - vezetéknév: "Stirling", - bdate: "1986.9.21" - ) - ] )

ahol megkaptuk a 210700286 azonosítójú felhasználó keresztnevét, vezetéknevét és születési idejét.

Hogyan használhatjuk a PHP-t ezen információk megszerzésére és tömbbé alakítására a kényelmes további munka érdekében?

A PHP programozási nyelv és a file_get_contents() függvény használatával ez nagyon egyszerű!

$user_id- ez az a változó, amelybe beírja a VK felhasználói azonosítót,

$info- ebben a változóban tároljuk a VK.COM webhely API-jához való hozzáférés eredményét

Ezen információkkal egy tömb birtokában valamilyen célból megjelenítheti az Önt érdeklő felhasználókat a weboldalán, illetve a segítségével is szépen megtervezheti ezen információk megjelenítését a weboldalán.

Következtetés

Amint látja, a PHP-vel nagyon könnyen kérhet HTTP és HTTPS oldalakat, és a PHP programozási nyelvnek csak egy funkcióját néztük meg, amellyel adatokat kérhet le egy külső webhelyről.

A következő cikkekben egy másik érdekes, de annál erősebb funkciót tekintünk át, amelyben további paramétereket állíthat be, például böngészőt, operációs rendszert és egyebeket a külső oldalakkal való kecsesebb élmény érdekében.