co nowego na blogu Krzywego ebiznesy.pl: Płatne wyświetlanie reklam, czyli GPTR i autosurfy
 zajrzyj także na video - blog > celeber.pl:  Skracanie adresów URL z goo.gl, czyli z Google


Poinformuj znajomych o tym wątku
Poinformuj znajomych na Facebook-u o tym wątku Poinformuj innych ludzi na Wykopie o tym wątku Poinformuj znajomych na Twitter-ze o tym wątku Poinformuj znajomych na Blip-ie o tym wątku Poinformuj znajomych na Buzz-ie o tym wątku Poinformuj znajomych na GG o tym wątku
wszystkie pytania związane z pozycjonowaniem, które nie pasują do innych działów SEO

Skrypt SERP - problem z fopen()

Postprzez mysero 29 Lip 2010, o 10:46

  • Poinformuj znajomych na Facebook-u o tym wątku
  • Poinformuj innych ludzi na Wykopie o tym wątku
  • Poinformuj znajomych na Twitter-ze o tym wątku
  • Poinformuj znajomych na Blip-ie o tym wątku
  • Poinformuj znajomych na Buzz-ie o tym wątku
  • Poinformuj znajomych na GG o tym wątku
 
Witam chciałem ogarnąć na swoją stronę skrypt w wyniku dający pozycję w serpie domeny po danej frazie.
Ale mam problem z fopen(). Mam błąd
Kod: Zaznacz wszystko
Warning: fopen() [function.fopen]: URL file-access is disabled in the server configuration in /home/blabla/blabla.php on line 102

Warning: fopen(http://www.google.com/search?hl=efdsgsdgdfsg546tart=00) [function.fopen]: failed to open stream: no suitable wrapper could be found in/home/blabla/blabla.php on line 102

Ponoć jest to związane z brakiem
allow_url_include = On
allow_url_fopen = On
w php.ini
Ale nie mogę się dobrać do php.ini bo firma hostingowa nie pozwala. Czy ktoś ma pomysł jak to ominąć?
Poniżej skrypt (część php)
Kod: Zaznacz wszystko
<?
/*

   http://www.seomoz.org
   Author: Matthew Inman <matt@seomoz.org>
   File: whererank.php
   Description:
     This script searches google for a given search term and redirects the user to the
     page of search results that contains the target URL.
   Installation:
     Rename this file have a .php extension and upload it to your web server.

*/


if (isset($_GET['url']) && isset($_GET['keyword'])) {

   $gg_url = 'http://www.google.com/search?hl=en&q=' . urlencode($_GET['keyword']) . '&start=';

   $url = preg_replace('(^http://|/$)','',$_GET['url']);

   for ($page = 0; $page < 9; $page++) {

     $handle = fopen($gg_url . $page  . 0 ,'r');

     $scraped = '';

      if ($handle) {
        while (!feof($handle)) {
            $buffer = fgets($handle, 4096);
            $scraped .= $buffer;
        }
        fclose($handle);
      }

      $results = array();
      preg_match_all('/a href="([^"]+)" class=l.+?>.+?<\/a>/',$scraped,$results);

      foreach ($results[1] as $serp) {
        $serp = preg_replace('(^http://|/$)','',$serp);
        if ($serp == $url) {
          header('Location: ' . $gg_url. $page . '0');
          exit;
        }

      }

   }
   $error_message = 'Nie znaleziono w TOP100';
}

?>

mysero
 

EDIT/

Postprzez mysero 29 Lip 2010, o 12:58

  • Poinformuj znajomych na Facebook-u o tym wątku
  • Poinformuj innych ludzi na Wykopie o tym wątku
  • Poinformuj znajomych na Twitter-ze o tym wątku
  • Poinformuj znajomych na Blip-ie o tym wątku
  • Poinformuj znajomych na Buzz-ie o tym wątku
  • Poinformuj znajomych na GG o tym wątku
 
Nie mogę już edytować, więc automatycznie przepraszam za double posta.
EDIT:
Admini od hostingu dodali mi magiczne dwie linijki kodu do php.ini
i problem minął, ale skrypt ogólnie nie działa.
Próbowałem zmieniać kod, na przykład na inny szablon adresu
$gg_url = 'http://www.google.pl/search?q=' . urlencode($_GET['keyword']) . '&start=';
ale nic to nie dało. Czy ktoś mógłby go sprawdzić?
A może ktoś ma coś innego/sprawdzonego?
Poniżej kod formularza:
Kod: Zaznacz wszystko
<head>
   <title>a</title>
    <META http-equiv="content-type" content="text/html; charset=iso-8859-2">
  <style type="text/css">
     form { width: 500px; margin: 0 auto; }
     .error_message { color: #920000; }
     label {
       display: block;
       margin-top: 1em;
     }
     input[type=submit] {
       margin-top: 1em;
     }
     address { font-size: .75em; text-align: center; }
  </style>
  <script type="text/javascript" language="javascript">
    function init() {
      document.url_kw.keyword.focus();
    }
  </script>
</head>

<body onload="javascript: init();">

  <form name="url_kw" action="<?= $_SERVER['PHP_SELF'] ?>" method="get">

    <fieldset>

      <legend>a</legend>

      <? if ($error_message): ?>
       <strong class="error_message">Nie znaleziono w TOP100</strong>
      <? endif; ?>

      <label for="url">Domena:</label>
      <input type="text" name="url" id="url" size="55" value="<?= isset($_GET['url']) ? $_GET['url'] : 'http://' ?>" />

      <br />

      <label for="keyword">Fraza:</label>
      <input type="text" name="keyword" id="keyword" size="35" value="<?= isset($_GET['keyword']) ? $_GET['keyword'] : null ?>" />

      <br />

      <input type="submit" name="submit_button" value="Szukaj" onclick="this.value='Szukam...';" />

      <input type="button" value="Anuluj" onclick="javascript: window.location='<?= $_SERVER['HTTP_REFERER'] ?>';" />

      <br />

      <p>
        <strong>Browser Button</strong>
        Drag this link to your browser toolbar, or right-click it and choose Bookmark This Link:
        <a href="javascript:location.href='<?= $_SERVER['SCRIPT_URI'] ?>?url='+location.href" title="Where's it rank?" onclick="window.alert('Drag this link to your browser toolbar, or right-click it and choose Bookmark This Link...');return false;">Where's it rank?</a>
      </p>

    </fieldset>

  </form>

mysero
 

Hmn...

Postprzez Konsultant FM Group 29 Lip 2010, o 13:20

  • Poinformuj znajomych na Facebook-u o tym wątku
  • Poinformuj innych ludzi na Wykopie o tym wątku
  • Poinformuj znajomych na Twitter-ze o tym wątku
  • Poinformuj znajomych na Blip-ie o tym wątku
  • Poinformuj znajomych na Buzz-ie o tym wątku
  • Poinformuj znajomych na GG o tym wątku
 
mysero napisał(a):skrypt w wyniku dający pozycję w serpie domeny po danej frazie


Czy mógłbyś wyjaśnić jak to działa? :hmm2:

Konsultant FM Group
 
Posty: 502
Rejestracja: 23 Lut 2010

Co nie działa

Postprzez Michał Otroszczenko 29 Lip 2010, o 16:25

  • Poinformuj znajomych na Facebook-u o tym wątku
  • Poinformuj innych ludzi na Wykopie o tym wątku
  • Poinformuj znajomych na Twitter-ze o tym wątku
  • Poinformuj znajomych na Blip-ie o tym wątku
  • Poinformuj znajomych na Buzz-ie o tym wątku
  • Poinformuj znajomych na GG o tym wątku
 
Czy umiesz określić co dokładnie nie działa? Czy chodzi o to, że funkcja fopen nie zwraca deskryptora otwartego pliku? Możesz zamiast tego użyć polecenia file, albo biblioteki curl, ale moim zdaniem najpierw zidentyfikuj punkt, który działa niepoprawnie.

M.

Michał Otroszczenko
 
Posty: 143
Rejestracja: 17 Sty 2010
Miejscowość: Warszawa

Re

Postprzez mysero 30 Lip 2010, o 11:05

  • Poinformuj znajomych na Facebook-u o tym wątku
  • Poinformuj innych ludzi na Wykopie o tym wątku
  • Poinformuj znajomych na Twitter-ze o tym wątku
  • Poinformuj znajomych na Blip-ie o tym wątku
  • Poinformuj znajomych na Buzz-ie o tym wątku
  • Poinformuj znajomych na GG o tym wątku
 
Fopen już działa poprawnie, bo na serwerze php.ini już mam zmieniony. Ale nadal nie wyświetla pozycji strony po danej frazie w google.
Możecie przetestować kod. Nie wiem dokładnie co nie działa. Po prostu nie daje wyniku - nie wyświetla.

mysero
 

file_get_contents google

Postprzez Mateusz A. 8 Sie 2010, o 19:34

  • Poinformuj znajomych na Facebook-u o tym wątku
  • Poinformuj innych ludzi na Wykopie o tym wątku
  • Poinformuj znajomych na Twitter-ze o tym wątku
  • Poinformuj znajomych na Blip-ie o tym wątku
  • Poinformuj znajomych na Buzz-ie o tym wątku
  • Poinformuj znajomych na GG o tym wątku
 
Temat już troszeczkę ma ale nie napisałeś czy znalazłeś rozwiązanie problemu.
W prawdzie nie do końca rozumiem w czym tkwi problem w tym momencie, no ale...

Jeżeli chcesz wyświetlić wyniki wyszukiwania google wystarczy że użyjesz funkcji file_get_contents

Kod: Zaznacz wszystko
$url=''http://www.google.com/search?hl=en&q=' . urlencode($_GET['keyword']) . '&start=';
$result=file_get_contents($url);
echo $result;


Później możesz sobie przeparsować zmienną $result.

Mateusz A.
 
Posty: 196
Rejestracja: 12 Cze 2010
Miejscowość: Wrocław

jeśli używasz tablic

Postprzez ugregusa 11 Sie 2010, o 00:15

  • Poinformuj znajomych na Facebook-u o tym wątku
  • Poinformuj innych ludzi na Wykopie o tym wątku
  • Poinformuj znajomych na Twitter-ze o tym wątku
  • Poinformuj znajomych na Blip-ie o tym wątku
  • Poinformuj znajomych na Buzz-ie o tym wątku
  • Poinformuj znajomych na GG o tym wątku
 
nic nie wyświetla bo nie ma żadnego echo

druga sprawa jeśli operujesz na tablicach to skorzystaj z tego kodu

Kod: Zaznacz wszystko
function print_array ($array, $exit = false) {
   print "<pre>";
   print_r ($array);
   print "</pre>";
   if ($exit) exit();
}


to jest bardzo prosta funkcja, która Ci wyświetli każdą tablice jaką jej podsuniesz pod nos
póki nie poznałem tej funkcji to także nie wiedziałem jak sprawdzać tablice, teraz to jest pierwsza funkcja jaką wrzucam w swoje skrypty aby sprawdzić działania

dodaj po całym kodzie php, po ostatniej klamrze:
Kod: Zaznacz wszystko
print_array($results);

a wyświetli Ci tablice z wynikami, a co Ty z tym dalej zrobisz to już tylko manual PHP może Ci pomóc
tablice są bardzo wygodną formą przechowywania informacji na czas wykonywania skryptu

jeszcze jedno, jeśli chcesz określić jaką liczbę wyników google ma Ci zwrócić użyj dodatkowego parametru w linku do google a mianowicie:

Kod: Zaznacz wszystko
&num=20

google zwróci Ci 20 wyników

oto wynik u mnie dla zapytania: index.php?url=adres-wwww&keyword=zegarki

Kod: Zaznacz wszystko
Array
(
    [0] => Array
        (
            [0] => a href="http:adres-strony-pl/cos-tam.html" class=l>Opis
            [1] => a href="http:adres-strony-pl/cos-tam.html" class=l>Opis
            [2] => a href="http:adres-strony-pl/cos-tam.html" class=l>Opis
            [3] => a href="http:adres-strony-pl/cos-tam.html" class=l>Opis
            [4] => a href="http:adres-strony-pl/cos-tam.html" class=l>Opis
            [5] => a href="http:adres-strony-pl/cos-tam.html" class=l>Opis
            [6] => a href="http:adres-strony-pl/cos-tam.html" class=l>Opis
            [7] => a href="http:adres-strony-pl/cos-tam.html" class=l>Opis
            [8] => a href="http:adres-strony-pl/cos-tam.html" class=l>Opis
            [9] => a href="http:adres-strony-pl/cos-tam.html" class=l>Opis
            ...
            ...
            ...       
            [19] => a href="http:adres-strony-pl/cos-tam.html" class=l>Opis
        )

    [1] => Array
        (
            [0] => http:adres-strony-pl/cos-tam.html
            [1] => http:adres-strony-pl/cos-tam.html
            [2] => http:adres-strony-pl/cos-tam.html
            [3] => http:adres-strony-pl/cos-tam.html
            [4] => http:adres-strony-pl/cos-tam.html
            [5] => http:adres-strony-pl/cos-tam.html
            [6] => http:adres-strony-pl/cos-tam.html
            [7] => http:adres-strony-pl/cos-tam.html
            [8] => http:adres-strony-pl/cos-tam.html
            [9] => http:adres-strony-pl/cos-tam.html
            ...
            ...
            ...
            [19] => http:adres-strony-pl/cos-tam.html
        )

)


linki specjalnie wywaliłem, aby nie wspomagać konkurencji a są tylko przykładem wyników
aby okreśłało pozycje trzeba jeszcze popracować nad tym skryptem

Umiejętności: zdolny i chętny, z doświadczeniem w łączeniu wody z ogniem i wykonywaniu niewykonalnego.

Obecnie pracuje na: UBUNTU 10.04 Lucid Lynx

Kontakt:
GG: 4816374
SKYPE: u.gregusa
Awatar użytkownika
ugregusa
 
Posty: 106
Rejestracja: 13 Cze 2009
Miejscowość: Jelenia Góra


Wróć do Pytania i wątpliwości

 


  • Podobne tematy
    Odpowiedzi
    Wyświetleń
    Ostatni post

Kto jest na forum

Użytkownicy przeglądający to forum: Brak zarejestrowanych użytkowników oraz 1 gość

cron