Skocz do zawartości

Pobieranie META i zmiana kodowania


Rekomendowane odpowiedzi

Skrypt zostal zaimplementowany w katalogu PKS - Prywatny Katalog Stron oparty na mini.otwarty a takze na KCS

<?php
/*
//   getPageInfo.php - skrypt do pobierania META danych stron www
//   Copyright (C) 2006 Yuriy Hatala (yuriy@myth.org.ua)
//
//   Niniejszy program jest wolnym oprogramowaniem; możesz go
//   rozprowadzać dalej i/lub modyfikować na warunkach Powszechnej
//   Licencji Publicznej GNU, wydanej przez Fundację Wolnego
//   Oprogramowania - według wersji 2-giej tej Licencji lub którejś
//   z późniejszych wersji.
//
//   Niniejszy program rozpowszechniany jest z nadzieją, iż będzie on
//   użyteczny - jednak BEZ JAKIEJKOLWIEK GWARANCJI, nawet domyślnej
//   gwarancji PRZYDATNOŚCI HANDLOWEJ albo PRZYDATNOŚCI DO OKREŚLONYCH
//   ZASTOSOWAŃ. W celu uzyskania bliższych informacji - Powszechna
//   Licencja Publiczna GNU. 
//
//   https://www.ogonki.agh.edu.pl/ - tablica do konwertowania
*/

function iso2utf()
{
return array(
"\xb1" => "\xc4\x85", "\xa1" => "\xc4\x84", "\xe6" => "\xc4\x87",
"\xc6" => "\xc4\x86", "\xea" => "\xc4\x99", "\xca" => "\xc4\x98",
"\xb3" => "\xc5\x82", "\xa3" => "\xc5\x81", "\xf3" => "\xc3\xb3",
"\xd3" => "\xc3\x93", "\xb6" => "\xc5\x9b", "\xa6" => "\xc5\x9a",
"\xbc" => "\xc5\xbc", "\xac" => "\xc5\xbb", "\xbf" => "\xc5\xba",
"\xaf" => "\xc5\xb9", "\xf1" => "\xc5\x84", "\xd1" => "\xc5\x83");
}

function win2utf()
{
return  array(
"\xb9" => "\xc4\x85", "\xa5" => "\xc4\x84", "\xe6" => "\xc4\x87",
"\xc6" => "\xc4\x86", "\xea" => "\xc4\x99", "\xca" => "\xc4\x98",
"\xb3" => "\xc5\x82", "\xa3" => "\xc5\x81", "\xf3" => "\xc3\xb3",
"\xd3" => "\xc3\x93", "\x9c" => "\xc5\x9b", "\x8c" => "\xc5\x9a",
"\x9f" => "\xc5\xbc", "\xaf" => "\xc5\xbb", "\xbf" => "\xc5\xba",
"\xac" => "\xc5\xb9", "\xf1" => "\xc5\x84", "\xd1" => "\xc5\x83");
}

function iso2win()
{
return array(
"\xa" => "\xa5", "\xa6" => "\x8c", "\xac" => "\x8f",
"\xb1" => "\xb9", "\xb6" => "\x9c", "\xbc" => "\x9f");
}


function GetPageInfo($PageURL)
{
  $Content = '';
  $ReturnArray = array();

  $Header = array( 'title'	   => '/(<title>)(.+)(<\/title>)/i',
		   'description'=> '/(name=[\'\"]?description[\'\"]?\s*content=[\'\"]?)((.(?!>))+)([\'\"]?\s*\/?>)/i',
		   'keywords' => '/(name=[\'\"]?keywords[\'\"]?\s*content=[\'\"]?)((.(?!>))+)([\'\"]?\s*\/?>)/i',
		   'charset' => '/(charset=[\'\"]?)((.(?!>))+)([\'\"]?\s*\/?>)/i');
  if (!empty($PageURL))
  {
  $handle = fopen($PageURL, "r");
  if (is_resource($handle) && ($handle !== FALSE))
  {
	 while (!(preg_match("/<\/head>/i", $Content)) && !feof($handle))
	 { $Content .= preg_replace("/[\r\n]+/", "", fread($handle, 256)); }
	 if (!empty($Content))
	 {
		foreach ($Header as $key => $value)
		{
		   $Result = array();
		   if (preg_match($value, $Content, $Result))
		   { $ReturnArray[$key] = preg_replace("/\s+/", " ", (preg_replace("/,/", ", ", $Result[2]))); }
		}
	 }
  }
  fclose($handle);

   if (!preg_match("/^iso/i", $ReturnArray['charset']))
   {
	   $RecodeArray = array();
	   switch (strtolower(substr($ReturnArray['charset'], 0, 3)))
	   {
		   case 'win' : $RecodeArray = array_flip(iso2win()); break;
		   case 'utf' : $RecodeArray = array_flip(iso2utf()); break;
	   }

	   foreach ($ReturnArray as $key => $value) { $ReturnArray[$key] = strtr($value, $RecodeArray); }
   }
  }
  return $ReturnArray;
}
?>

Wiec funkcja

check_addok_link()

w skrypcie op.php z mini.otwarty teraz wygliada tak ....

..........

include("GetPageInfo.php");

..........
function check_addok_link() {
global $stop1, $cfg, $prefix, $sid, $url, $uri;
if ($cfg[u3]==3) {
$stop1 = "a to ciekawe";
} else {

$check_sid = mysql_fetch_assoc(mysql_query("select * from ".$prefix."sesje where ident='$sid' "));

if ( ($_POST[tytul]=="" || $_POST[opis]=="" || $_POST[slowa]=="")) { $stop1 = "wszystkie pola formularza  musza zostać wypełnione"; }

$wpi = mysql_fetch_assoc(mysql_query("select * from ".$prefix."wpisy where url='$url' and uri='$uri' "));
if ($wpi[id]!="") { $stop1="Nie możesz ponownie dodać tego samego wpisu"; }


if ($_POST[err]!=1)
{
$urll = "https://$url/$uri";

$PageInfo = GetPageInfo($urll);

$_POST[tytul] = $PageInfo['title'];
$_POST[opis]  = $PageInfo['description'];
$_POST[slowa] = $PageInfo['keywords'];
}

$_POST[tytul] = htmlspecialchars($_POST[tytul]);
$_POST[opis] = htmlspecialchars($_POST[opis]);
$_POST[slowa] = htmlspecialchars($_POST[slowa]);
if ($cfg[u5]==1 AND $check_sid[ident]=="") { $stop1="Sesja wygasła";}
}
}
..............

Odnośnik do komentarza
Udostępnij na innych stronach

Witam, powysz skryp znacnie przyśpieszanie pobieranie META, można to także zoabczyć w moim Promocyjnym Katalog Stron.

P.S. Może teraz ktoś zrobi wyszukiwarkę do wersji 1.0 :soczek:

Mar.

Polecam katalog SeoPark.pl, katalog AK47 (5 lata w sieci) ...oraz Wirtualne-miasta.eu
"Dopóki nie skorzystałem z Internetu, nie wiedziałem, że na świecie jest tylu idiotów" - Stanisław Lem

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności