Chirurgia cranio-cerebrală minim invazivă
Tehnicile minim invazive impun utilizarea unei tehnologii ultramoderne. Endoscoapele operatorii de diverse tipuri, microscopul operator dedicat, neuronavigația, neuroelectrofiziologia, tehnicile avansate de anestezie, chirurgia cu pacientul treaz reprezintă armamentarium fără de care neurochirurgia prin "gaura cheii" nu ar fi posibilă. Folosind tehnicile de mai sus, tratăm un spectru larg de patologii cranio-cerebrale. www.neurohope.ro |
Preg_Match_All din Json
Ultima postare: apr 25 2023 15:55, Inițiat de
phpguru
, apr 25 2023 00:18
·
0
#1
Publicat: 25 aprilie 2023 - 00:18
Salut,
Am o sursa json (link) si as vrea sa o extrag cu preg_match_all conform codului de mai jos. Cu json l-am facut insa incarca greu deoarece codul are peste 5k linii, iar cu preg_match_all incarca instant. Codul este cam asa: {"tara":"ro","oras":"Bucuresti","tip":"TEST 1","descriere":"LINIA 1"}, {"tara":"ro","tip":"TEST 2","apropiere":"ILFOV","descriere":"LINIA 2"} In linia TEST1 apare "oras", iar in linia TEST 2 apare "apropiere". Nu reusesc sa extrag "oras" si "apropiere" atunci cand exista, sa le afiseze doar daca exista. |
#4
Publicat: 25 aprilie 2023 - 10:24
Turcalet, on 25 aprilie 2023 - 02:06, said:
Pare un job pentru NodeJS. Mai intai trebuie sa parsezi JSON-ul asta in obiecte / array PHP si dupa aia sa traversezi si sa verifici cu array_key_exists. robert23mg, on 25 aprilie 2023 - 06:21, said:
Nu chiar, pt ca intre oras si apropiere ai tip. Cu celelalte cum ramane? Tara, descriere si tip?
|
#5
Publicat: 25 aprilie 2023 - 10:50
function curl( $url ) { $ua = ["Mozilla/5.0 (Macintosh; Intel Mac OS X 12_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Safari/605.1.15", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:100.0) Gecko/20100101 Firefox/100.0", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36 Edg/100.0.1185.39", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36 OPR/86.0.4363.23", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36"] ; $agent = $ua[mt_rand( 0, count( $ua ) - 1 )] ; $curl = curl_init() ; curl_setopt( $curl, CURLOPT_URL, $url ) ; curl_setopt( $curl, CURLOPT_REFERER, $url ) ; curl_setopt( $curl, CURLOPT_AUTOREFERER, true ) ; curl_setopt( $curl, CURLOPT_USERAGENT, $agent ) ; curl_setopt( $curl, CURLOPT_HEADER, false ) ; curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true ) ; curl_setopt( $curl, CURLOPT_FOLLOWLOCATION, true ) ; curl_setopt( $curl, CURLOPT_MAXREDIRS, 10 ) ; curl_setopt( $curl, CURLOPT_NOSIGNAL, true ) ; curl_setopt( $curl, CURLOPT_TIMEOUT_MS, 5000 ) ; curl_setopt( $curl, CURLOPT_CONNECTTIMEOUT_MS, 5000 ) ; curl_setopt( $curl, CURLOPT_SSL_VERIFYHOST, 0 ) ; curl_setopt( $curl, CURLOPT_SSL_VERIFYPEER, false ) ; //curl_setopt( $curl, CURLOPT_FRESH_CONNECT, true ) ; curl_setopt( $curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 ) ; $result = curl_exec( $curl ) ; curl_close( $curl ) ; return $result ; } $curl = curl( "https://www.waze.ro/georss.php?top=45.9&bottom=24.9&right=30&left=20&nocache=" . microtime( true ) * 1000 ) ; preg_match_all( "#\"country\":\"RO\".+?(\"city\":\"(.+?)\".+?)?\"type\":\"ACCIDENT\".+?\"subtype\":\"(|(.+?))\".+?\"street\":\"(|(.+?))\".+?(\"nearBy\":\"(.+?)\".+?)?\"location\":{\"x\":(.+?),\"y\":(.+?)}.+?\"pubMillis\":(.+?)},{#si", $curl, $matches ) ; echo "<pre>" ; print_r( $matches ) ; echo "</pre>" ; city este oras si nu apare tot timpul, nearby este apropiere si nu apare tot timpul. Asa am incercat sa-l fac, insa imi afiseaza un singur rezultat, desi normal ar trebui sa-mi afiseze cate rezultate (tip ACCIDENT) sunt. |
#7
Publicat: 25 aprilie 2023 - 15:41
luckybastard, on 25 aprilie 2023 - 13:10, said:
@phpguru de ce nu merge sa parsezi tot cu `json_decode()` si sa treci cu un `foreach()` prin toate rezultatele? Am impresia ca doar te complici aici cu regex. - salvez informatia din link (extern) in local (pe site-ul meu), - setez un cron pt actualizare informatie cu interval de timp - in final parsez informatia cu json_decode direct din local. Anyway, multumesc. |
#8
Publicat: 25 aprilie 2023 - 15:55
phpguru, on 25 aprilie 2023 - 15:41, said:
Json_decode nu afiseaza fisiere mari sau le afiseaza cu intarziere Nu prea inteleg cum ar veni asta. Acest link iti da un singur raspuns in format JSON, "json_decode()" se descurca destul de bine cu parsarea acestuia in timpi destul de ok. E prea mult sa faci asta la fiecare request (daca merge vorba de un web app aici, trebuie sa specifici mai exact contextul problemei) — da, probabil. Dar asta deja tine de cum iti organizezi tu solutia. Intrebarea initiala era despre parsarea propriu zisa a response-ului in format JSON dintr-un URL. E o idee foarte proasta sa incerci sa parsezi JSON-ul cu regex atunci cand solutia "oficiala" e mult mai flexibila si rapida, parerea mea. Spor! |
Anunturi
▶ Utilizatori activi: 1
0 membri, 1 vizitatori, 0 utilizatori anonimi