Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapis do pliku .txt wyniku z formualarza
Forum PHP.pl > Forum > PHP
szopik
Witam mam taki problem i nie mogę sobie poradzić. Mam formularz który sprawdza pozycje przypisanych fraz w google i po ich sprawdzeniu wypluwa na stronę wynik ja ten wynik chcę przechwycić i zapisać do pliku, i właśnie tu tkwi problem. Nie wiem dlaczego ale nie bardzo chce mi zapisać wynik mimo ze plik .txt zostaje nadpisany ale pozostaje pusty, proszę o pomoc i wskazówki. Najważniejsza jest końcówka kodu jest wyboldowana. Interesuje mnie zapis pozycji jedna pod drugą a to cały kod:


  1. <html>
  2.  <head>
  3.  <title>Sprawdzanie pozycji</title>
  4.  </head>
  5.  <style type="text/css">
  6.  body{background:#cccccc; text-align:center; margin:20px; font-family:arial; font-size:12px}
  7.  td{font-family:arial; font-size:12px}
  8.  input{width:300px}
  9.  textarea{width:300px}
  10.  </style>
  11.  <body>
  12.  <form action="" method="POST">
  13.  Keywords:
  14.  <textarea rows="15" cols="50" type="text" name="keywords"><? print $_POST['keywords']?$_POST['keywords']:"Enter keywords each from new line"; ?></textarea>
  15.  
  16.  Website URL (without http://)
  17.  <input type="text" name="site" value="<? print $_POST['site']?$_POST['site']:"www."; ?>">
  18.  
  19.  <input type="submit" name="zapisz" value="Check">
  20.  </form>
  21.  <?
  22.  function getGoogleResults($query, $start) {
  23.      $googleurl="http://www.google.pl/";
  24.      $sesse = urlencode($query);
  25.      $urlslist = array();
  26.      $googlesearch = "search?q=$sesse&hl=pl&start=$start&sa=N";
  27.      $pagesource = curlGetPage($googleurl.$googlesearch, "http://www.google.pl/");
  28.      $urls = getTags($pagesource, "<li class=g><h3 class=r>", "</a>");
  29.      for($i = 0; $i < sizeof($urls); $i++) {
  30.          $href = "";
  31.          $anchors = getTags($urls[$i], "<a", ">");
  32.          $href = getTagField($anchors[0], "href=");
  33.          $urlslist[$i] = $href;
  34.      }
  35.      return $urlslist;
  36.  }
  37.  
  38.  
  39.  
  40.  function curlGetPage($url, $referer) {
  41.          $ch = curl_init($url);
  42.          curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  43.          curl_setopt($ch, CURLOPT_USERAGENT, $GLOBALS["agent"]);
  44.          curl_setopt($ch, CURLOPT_HEADER, 1);
  45.          curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  46.          curl_setopt($ch, CURLOPT_TIMEOUT, 15);
  47.          if($referer != "") {
  48.              curl_setopt($ch, CURLOPT_REFERER, $referer);
  49.          }
  50.          $html = curl_exec($ch);
  51.          if(curl_errno($ch)) {
  52.              echo curl_error($ch);
  53.              $html = "";
  54.          }
  55.          curl_close ($ch);
  56.  
  57.      return $html;
  58.  }
  59.  
  60.  
  61.  
  62.  function getTags($source, $start, $end) {
  63.      $tmp = $source;
  64.      for($i = 0; strlen($tmp) > 0; $i++) {
  65.          if(($postagst = strpos($tmp, $start)) == false)
  66.              break;
  67.          $tmp = substr($tmp, $postagst);
  68.          $postagend = strpos($tmp, $end);
  69.          if($postagend > 0)
  70.              $tags[$i] = substr($tmp, 0, $postagend + strlen($end));
  71.          else {
  72.              $tags[$i] = $tmp;
  73.          }
  74.          $tmp = substr($tmp, strlen($tags[$i]));
  75.      }
  76.      return $tags;
  77.  }
  78.  
  79.  
  80.  function getTagField($tag, $fieldname) {
  81.      $field = "";
  82.      $ttag = substr($tag, 1, strpos($tag, '>') - 1);
  83.      if(($pos = strpos($ttag, $fieldname)) > 0) {
  84.          $tmpfield = substr($ttag, $pos + strlen($fieldname));
  85.          if($tmpfield[0] == '"' || $tmpfield[0] == "'") {
  86.              if($tmpfield[0] == '"') {
  87.                  $tmpfield = substr($tmpfield, 1);
  88.                  $field = substr($tmpfield, 0, strpos($tmpfield, '"'));
  89.              }
  90.              if($tmpfield[0] == "'") {
  91.                  $tmpfield = substr($tmpfield, 1);
  92.                  $field = substr($tmpfield, 0, strpos($tmpfield, "'"));
  93.              }
  94.          }
  95.          else {
  96.              if(strpos($tmpfield, ' ') > 0)
  97.                  $field = substr($tmpfield, 0, strpos($tmpfield, ' '));
  98.              else
  99.                  $field = $tmpfield;
  100.          }
  101.      }
  102.      return $field;
  103.  }
  104.  if ($_POST['keywords']) {
  105.  $keywords = $_POST['keywords'];
  106.  $keyword = explode("r", ereg_replace("\n","", $keywords));
  107.  $site = $_POST['site'];
  108.  $siteurl = str_replace("/","",str_replace("www.","",$site));
  109.  print "<table align=\"center\" border=\"1\"><tr><td><b>Keyword</b></td><td><b>Position</b></td><td><b>Page in SERP</b></td></tr>";
  110.  for ($i1=0; $i1<count($keyword); $i1++) {
  111.  for($ses =  0; $ses < 100; $ses = $ses + 10) {
  112.              $urlslist = array();
  113.              $googleurlslist = getGoogleResults($keyword[$i1], $ses);
  114.              $urlslist = array_merge($urlslist, $googleurlslist);
  115.              for($i = 0; $i < sizeof($urlslist); $i++) {
  116.              if (!strpos($urlslist[$i], "interstitial")) {
  117.  $googl=parse_url($urlslist[$i]);
  118.  }
  119.  else
  120.  {
  121.  $without = str_replace("/interstitial?url=", "", $urlslist[$i]);
  122.  $googl=parse_url($without);
  123.  }
  124.              if ($googl['host']==$site || $googl['host']==$siteurl) {
  125.              $siteposit = $ses + $i + 1;
  126.                      echo "<tr><td>".$keyword[$i1]."</td><td>".$siteposit."</td><td>".$urlslist[$i]."</td></tr>";
  127.                      
  128.                      break 2;
  129.                  }
  130.  else
  131.  {
  132.  if ($ses==40 && $i==9) {
  133.  echo "<tr><td>".$keyword[$i1]."</td><td>Brak w pierwszej 100</td><td>No</td></tr>";
  134.  }
  135.  }
  136.              }
  137.          }
  138.      }
  139.      print "</table>";
  140.  sleep(5);
  141.  flush(5);
  142.  
  143.  
  144.  [b]{
  145.  $tekst = $_POST['$siteposit'];
  146.  $otworz = fopen("test.txt", "w+");
  147.  fputs($otworz, $tekst);
  148.  fclose($otworz);
  149.  }[/b]
  150.  
  151.  }
  152.  
  153.  ?>
  154.  <br
  155.  </body>
  156.  </html>
plurr
proponuje debuga na POST, oraz zmienic fopen na a+ - zobacz czy działa.
wookieb
wywal fopeny i zastosuj file_put_contents. Po co sobie utrudniać życie.
szopik
Super działa, ułatwiłem sobie życie i wywaliłem fopeny, jednak pojawił się kolejny problem i nie moge znaleźć informacji jak go rozwiazać. Po wykonaniu pliku zapisuje mi tylko ostatni rekord a nie wszystkie jakie się wyświetlą, no i oczywiscie nadpisuje cały plik nowym rekordem :/  co powinienem zrobić lub czego szukać żeby to rozwiazać przy zastosowaniu poniższej funckji ?

  1. <?php
  2. {
  3.  file_put_contents ("test.txt", $siteposit);
  4. }
  5. ?>
wookieb
Alergia na manual?
http://php.net/file_put_contents
dodajesz flage FILE_APPEND
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.