|
Da, verovatno je do mysql baze ... mada baza postoji, video sam preko phpmyadmina kao i sadrzaj.
|
Pokušaj da zameniš
Kôd:
$row['text'] = str_replace("<", "<", $row['text']); Kôd:
$row['text'] = str_replace("<", "<", $row['text']); |
Da li je mozda greksa kao sto kaze ''Pecili'' u lose postavljenoj bazi ???... i kada je to slucaj. Ceo dan sam juce pokusavao sa razlicitim varijantama koda ali bez uspeha... svuda izadje:
error on line 38 at column 3: Extra content at the end of the document ili document empty i sl. ima li neko proveren kod za citanje mysql baze u xml format |
Postavi uz poruku generisani xml fajl. Zaboravio sam gore da napišem pokušaj i sa htmlspecialchars() funkcijom.
|
<?php
header("Content-type: text/xml"); $host = "localhost"; $user = "user"; $pass = "lozinka"; $database = "baza"; $linkID = mysql_connect($host, $user, $pass) or die("Could not connect to host."); mysql_select_db($database, $linkID) or die("Could not find database."); $query = "SELECT * FROM tabela"; $resultID = mysql_query($query, $linkID) or die("Data not found."); $xml_output = '<' . '?' . 'xml version="1.0" ' . '?' . '>'; $xml_output .= "<entries>\n"; for($x = 0 ; $x < mysql_num_rows($resultID) ; $x++){ $row = mysql_fetch_assoc($resultID); $xml_output .= "\t<entry>\n"; $xml_output .= "\t\t<ID>" . $row['ID'] . "</ID>\n"; // Escaping illegal characters htmlentities(); $row['text'] = str_replace("&", "&", $row['text']); $row['text'] = str_replace("<", "<", $row['text']); $row['text'] = str_replace(">", ">", $row['text']); $row['text'] = str_replace("\", """, $row['text']); htmlentities(); $xml_output .= "\t\t<text>" . $row['text'] . "</text>\n"; $xml_output .= "\t</entry>\n"; } $xml_output .= "</entries>"; htmlentities(); echo $xml_output; ?> Takdoje sam sada video da kada stavim decimlnu tip podataka za latitude i longitude onda se u bazi upise kao 0.440000 a treba da se upise kao 44.3421344... ??? |
Nisam mislio na to, već na generisanu stranicu, ali hajde probaj ovako:
PHP kôd:
|
This page contains the following errors:
error on line 31 at column 3: Extra content at the end of the document Below is a rendering of the page up to the first error. Verovatno imam gresku u bazi... pokusacu drugacije da sredim ovo. Hvala najlepse na pomoci. |
header("Content-type: text/xml"); ukini ovaj header pa vidi šta će ispisati, ubaci u XML validator i vidi...
|
Proveri u svom php fajlu da li posle php taga za zatvaranje ?> nema neki karakter/sadržaj.
A što se tiče problema sa decimalnim brojevima proveri da li si definisao u bazi potreban format/raspon polja, npr. nešto kao decimal(10,6) |
xml validator kaze:
Error: Object # has no method 'load' |
Pa postavi nama XML, ništa ovo ne znači, odnosno sve je jasno.
|
Takdoje sam video da mi brojeve decimalne ne upisuje lepo u bazu iako sam stavio tip DECIMAL 10,6 jer su string... pa me interesuje koju funciju da upotrebim da bih prebacio string u integer odnosno u decimal... da li moze ovako $data= (decimal) $data;
|
Nerazumem sta se desava sa mojom mysql bazom kad ni provereni tutoriali sa neta ne rade...
|
Zato i ne radi...
|
Predlozite mi vi neki proveren kod za export mysql baze u xml fajl ... sve je ok kada se radi rucno ali sa php komandama nece nikako!
|
Citat:
|
Kada su koordinate date u ovakvom obliku: var lat = 44.780921; var lang = 20.47195;
izvuku se funcijom: preg_match('/var\s+lat\s+=\s+(\d+\.\d+)\s*;/', $location, $lat); preg_match('/var\s+lang\s+=\s+(\d+\.\d+)\s*;/', $location, $lang); ... ali kako da izvucem obe koordinate kada su date ovako i moze li uopste da se uradi: var latlng = new google.maps.LatLng(40.806279 , 20.496687); Znaci najpre prvu i da joj dam vrednost $lat a zatim i drugu kojoj ce vrednost biti $lng ??? |
Hvala svima na pomoci a evo i dokle sam stigao: http://kuponik.adriamart.com/act.php ... naravno treba jos mnogo toga uraditi ali to je to za sada.
Medjutim sada imam jedan mali problem: kada su koordinate date u ovakvom obliku: var lat = 44.780921; var lang = 20.47195; izvuku se funcijom: preg_match('/var\s+lat\s+=\s+(\d+\.\d+)\s*;/', $location, $lat); preg_match('/var\s+lang\s+=\s+(\d+\.\d+)\s*;/', $location, $lang); ... ali kako da izvucem obe koordinate kada su date ovako i moze li uopste da se uradi: var latlng = new google.maps.LatLng(40.806279 , 20.496687); Znaci najpre prvu i da joj dam vrednost $lat a zatim i drugu kojoj ce vrednost biti $lng ??? |
Kôd:
$regex = '!\.LatLng\(\s*(\d+\.\d+)\s*,\s*(\d+\.\d+)\)!'; |
Ne radi ...
<?php $dom = new DOMDocument(); @$dom->loadHTMLFile('http://www.popusti.rs/offer/today'); $xpath = new DOMXPath($dom); $entries = $xpath->query("//div[@id='wrapper']//h3//a/@href"); $output = array(); foreach($entries as $e) { $dom2 = new DOMDocument(); @$dom2->loadHTMLFile('http://www.popusti.rs' . $e->textContent); $xpath2 = new DOMXPath($dom2); $data = array(); $regex = '!\.LatLng\(\s*(\d+\.\d+)\s*,\s*(\d+\.\d+)\)!'; preg_match($regex, $str, $match); $data['lat'] = $match[1]; $data['lng'] = $match[2]; $output[] = $data; } echo '<pre>' . print_r($output, true) . '</pre>'; ?> |
Npr. umesto $str stavi $dom2->saveHTML() ili nešto kao:
$xpath2->query("//div[@id='content']/div[@class='offer-details']/script")->item(0)->textContent |
Hvala care!
|
Kako npr. odavde izvuci koordinate: <div class="googleMap jGoogleMap">
<img src="http://maps.google.com/maps/api/staticmap?center=50.2723069,18.991302700000006& ;zoom=14&size=189x172&maptype=roadmap& markers=color:orange|50.2723069,18.991302700000006 &sensor=false"s obzirom da se one nalaze unutar linka? |
Takodje da pitam da li postoji neki program za regex ili sl. koji bi mi ubrzao proces jer ima dosta sajtova sa kojih pokusavam da izvucem po nesto. Video sam rexexbuddy ali on se placa :(
|
Da li postoji mogucnost da se napravi neki ''crawler'' ili je to previse slozeno...
|
Možda nešto kao:
PHP kôd:
|
Kako je moguce da ovaj kod izvlaci pogresne koordinate:
<?php $string = file_get_contents('http://www.groupon.pl'); $regex = '/<img src="http:\/\/maps\.google\.com\/maps\/api\/staticmap\?center=(\d+\.\d+),(\d+\.\d+)/'; preg_match($regex, $string, $match); $data['lat'] = $match[1]; $data['lng'] = $match[2]; echo '<pre>' . print_r($data, true) . '</pre>'; ?> 50.27... i 18.99... su koordinate koje treba da se izvuku a ovaj kod izvlaci svaki put drugacije koordinate (posle nekoliko refresovanja koordinate se menjaju - ????? Prvi put izvuce: [lat] => 54.41894259999999 [lng] => 16.412185300000033 Drugi put izvuce: Array ( [lat] => 52.2378869 [lng] => 20.999525800000015 ) ... ??? |
Pa možda se podaci menjaju na stranici, ne prikazuju se uvek isti podaci, koliko vidim na toj stranici postoji samo jedana takva slika, odradi echo $string; i vidi šta je u tom trenutku prikazano na stranici, kada se izvlače koordinate.
|
podaci na stranici se ne menjaju ...mozda postoji neka funkcija koja ne dozvoljava izvlacenje koordinata ili funciju filegetcontents... ali stvarno mi nije jasno zasto skripta menja koordinate kada na toj strani druge koordinate ne postoje... ali hvala u svakom slucaju ... resicu vec nekako ako ne potrazicu pomoc. dosta toga sam vec naucio ne samo o php-u nego i o xml-u i regexu
|
E pa nije :) Ti nisi pitao na ovim stranicama kako da riješiš problem već "show me teh codes" :)
Promjeni REGEXP... |
Epa dobro evo :) ... kako da resim problem :) mozda da upotrebim cURl ili ???
ustvari curl + regex ili mozda xpath (xml). Mene samo zanima odgovor na pitanje zasto se koordinate menjaju posle nekjoliko refresa kada u open sourcu se nalzi samo jedan koordinata tj. (longitude i latitude) i to je to! ? |
Jel upoznat neko sa ASP.NET MVC 3, razor sintaksom kao i entity frameworkom jer vidim da je vecina agregatora ponuda napravljena pomocu asp-a (grupiranje.com)... koja je razlika izmedju asp-a i php-a. gde je lakse raditi i sta je bolje nauciti asp ili php.
|
Citat:
Kôd:
http://www.groupon.pl Kôd:
http://maps.google.com/maps/api/staticmap?center=50.2967641,19.041866099999993&zoom=14&size=189x172&maptype=roadmap&markers=color:orange|50.2967641,19.041866099999993&sensor=false Da li je ovo kompletan kod koji koristiš za izvlaćenje sadržaja sa ovog sajta ili ima još nešto što nisi napisao? Ili ja nisam lepo razumeo problem. |
cURL služi samo da "dohvatiš" sadržaj, samo što je 4-5x brži od FGC i ima mnooogo više opcija.
To u čemu je napravljen site nema veze output je HTML... Nije nigdje lakše raditi. PHP kôd:
|
Ovo je extra impresioniran sam. Da li je neko pokusavao da preuzme podatke sa umbrelinog sajta i da li je to legalno raditi. Kako bi recimo za izgledalo za Beograd (temperatura,vlaznost,vetar)
http://www.weather2umbrella.com/ba/v...84/0/meteogram |
ok. hvala
|
Imaš u ovom URLu sve podatke samo treba da skontaš kako su upareni i eto ti riješenje... Mislim nemaš šta da kontaš, izvuci svaki parametar u array, uradi count, loop, i print, i sve će se samo složiti...
Citat:
|
ili npr. sa, gde se nalaze u html obliku
http://www.weather2umbrella.com/ba/v...1/1924284/0/1h |
^ Još lakše, bolje...
|
Vreme je GMT +2. Trenutno vreme je 13:21. |
Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.