retrieve data από url?

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
GRaecuS
Δημοσιεύσεις: 113
Εγγραφή: 02 Απρ 2003 10:21
Τοποθεσία: Thessaloniki
Επικοινωνία:

retrieve data από url?

Δημοσίευση από GRaecuS » 11 Ιουν 2009 14:47

προσπαθώ βάζοντας το url ενός site να φέρνει τον τίτλο και meta tags.
με τον κώδικα που έχω κάνει, γίνεται αλλά στα ελληνικά το enconding είναι λάθος και τα βγάζει μπερδεμένα.

Κώδικας: Επιλογή όλων

	$url = $_GET['url'];

	$fp = fopen($url, 'r');
	$content = '';
	while(!feof($fp)) {
		$buffer = trim(fgets($fp, 4096));
		$content .= $buffer;
	}
	$start = '<title>';
        $end = '<\/title>';
        preg_match&#40;"/$start&#40;.*&#41;$end/s", $content, $match&#41;;
	$metatagarray = get_meta_tags&#40;$url&#41;;

	$data->title = $match&#91;1&#93;;
	$data->description = $metatagarray&#91;"description"&#93;;
	$data->keywords = $metatagarray&#91;"keywords"&#93;;
καμιά βοήθεια?

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6236
Εγγραφή: 30 Νοέμ 2004 03:09

retrieve data από url?

Δημοσίευση από fafos » 11 Ιουν 2009 16:17

dokimasa 5-6 sites xoris provlhma.. me poio site sou ta deixnei paraksena? dokimase auto sthn arxh tou script:

Κώδικας: Επιλογή όλων

header&#40;"Content-Type&#58; text/html; charset=iso-8859-7"&#41;;
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
GRaecuS
Δημοσιεύσεις: 113
Εγγραφή: 02 Απρ 2003 10:21
Τοποθεσία: Thessaloniki
Επικοινωνία:

retrieve data από url?

Δημοσίευση από GRaecuS » 11 Ιουν 2009 17:42

fafos έγραψε:dokimasa 5-6 sites xoris provlhma.. me poio site sou ta deixnei paraksena? dokimase auto sthn arxh tou script:

Κώδικας: Επιλογή όλων

header&#40;"Content-Type&#58; text/html; charset=iso-8859-7"&#41;;
thx για την γρήγορη απάντηση :)
με το header δουλεύει για σελίδες με ISO-8859-7 αλλά οχι με UTF-8...
ούτε και το αντίστροφο όμως.

Κάτι πιο global υπάρχει?

υ.γ. checkarw contra.gr, in.gr και freestuff.gr

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6236
Εγγραφή: 30 Νοέμ 2004 03:09

retrieve data από url?

Δημοσίευση από fafos » 11 Ιουν 2009 18:19

apo thn stigmh pou den mporeis na diavaseis to meta me to encoding tou kathe site prepei na oriseis me ena allo GET to encoding.. p.x. gia to freestuff pou exei ellhniko:

http://www.istopoli.com/cruise/images/p ... eestuff.gr

kai gia to contra pou exei UTF-8:

http://www.istopoli.com/cruise/images/p ... a.gr&enc=1

o kodikas:

Κώδικας: Επιλογή όλων

if&#40;$_GET&#91;enc&#93; == 1&#41; &#123;
header&#40;"Content-Type&#58; text/html; charset=UTF-8"&#41;;
&#125; else &#123;
header&#40;"Content-Type&#58; text/html; charset=iso-8859-7"&#41;;
 &#125;
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

retrieve data από url?

Δημοσίευση από dva_dev » 11 Ιουν 2009 19:22

Και γιατί δεν ψάχνεις μέσα στο string που έχεις να δεις (στην $content) τι encoding έχει η σελίδα που διαβάζεις;

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6236
Εγγραφή: 30 Νοέμ 2004 03:09

retrieve data από url?

Δημοσίευση από fafos » 11 Ιουν 2009 19:37

dva_dev έγραψε:Και γιατί δεν ψάχνεις μέσα στο string που έχεις να δεις (στην $content) τι encoding έχει η σελίδα που διαβάζεις;
to get_meta_tags($url) den dinei to content.. prepei na dhmiourghsei allo parse gia na parei to enconding..
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

retrieve data από url?

Δημοσίευση από dva_dev » 11 Ιουν 2009 22:13

Κώδικας: Επιλογή όλων

$fp = fopen&#40;$url, 'r'&#41;;
   $content = '';
   while&#40;!feof&#40;$fp&#41;&#41; &#123;
      $buffer = trim&#40;fgets&#40;$fp, 4096&#41;&#41;;
      $content .= $buffer;
   &#125;
Ολο το html αρχείο το έχει σαν ένα string στην $content. Δεν είναι δύσκολο να ψάξει για "charset=<το encoding που χρησιμοποιεί>"
Κάτι του στύλ

Κώδικας: Επιλογή όλων

<meta http-equiv="Content-Type" content="text/html; charset=?????">
θα το βρεί.

Άβαταρ μέλους
GRaecuS
Δημοσιεύσεις: 113
Εγγραφή: 02 Απρ 2003 10:21
Τοποθεσία: Thessaloniki
Επικοινωνία:

retrieve data από url?

Δημοσίευση από GRaecuS » 12 Ιουν 2009 11:46

νομίζω οτι κάτι κατάφερα τελικά με την ιδέα του να παίρνω το encoding

Κώδικας: Επιλογή όλων

	$url = $_GET&#91;'url'&#93;;

	$fp = fopen&#40;$url, 'r'&#41;;
	$content = '';
	while&#40;!feof&#40;$fp&#41;&#41; &#123;
		$buffer = trim&#40;fgets&#40;$fp, 4096&#41;&#41;;
		$content .= $buffer;
	&#125;

	$start = '<title>';
    $end = '<\/title>';
    preg_match&#40;"/$start&#40;.*&#41;$end/s", $content, $matchtitle&#41;;
	$data->title = $matchtitle&#91;1&#93;;

	$content	= substr&#40;$content, strpos&#40;$content,'charset='&#41;&#41;;
	$encoding	= substr&#40;$content, 0, strpos&#40;$content,'"'&#41;&#41;;

	$metatagarray		= get_meta_tags&#40;$url&#41;;
	$data->description	= $metatagarray&#91;"description"&#93;;
	$data->keywords		= $metatagarray&#91;"keywords"&#93;;

	header&#40;"Content-Type&#58; text/html; ".$encoding&#41;;

	print_r&#40;$data&#41;;

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης