close× Call Us +49 (1805) 01 29 59

Heiseclan
Thread Author: MaZzIMo24
Thread ID: 3382
Thread Info
Es gibt 7 Beiträge zu diesem Thema, und es wurde 2272 mal angesehen.
Wer ist hier? 1 Gäste
 Thema drucken
alle zeilen der txt datei prüfen
MaZzIMo24
Hallo Lieber Support,

Meine Frage ist ganz simpel, ich bin dabei ein Skript zu schreiben,
dieses Skript soll ähnlich wie ein Versions Check laufen, nur beim versions Check was ich kenne ließt er nur die erste Zeile,

Ich hänge mal meine php und txt schnipsel an, würde mich sehr freuen wenn mir jemand weiter helfen kann.

PHP Versions Check (basti und co)

if (!defined("IN_FUSION")) { die("Access Denied"); }
// CONFIG
define("THIS_VERSION", "xxx765");
$url_h = "http://www.fusion-v7.de";
$url = "http://www.fusion-v7.de/Projekt/version/test.txt";

function version() {
   global $url;

   $url_p = @parse_url($url);
   $host = $url_p['host'];
   $port = isset($url_p['port']) ? $url_p['port'] : 80;
   $fp = @fsockopen($url_p['host'], $port, $errno, $errstr, 5);
   if (!$fp) return false;
   @fputs($fp, 'GET '.$url_p['path'].' HTTP/1.1'.chr(10));
   @fputs($fp, 'HOST: '.$url_p['host'].chr(10));
   @fputs($fp, 'Connection: close'.chr(10).chr(10));
   $response = @fgets($fp, 1024);
   $content = @fread($fp,1024);
   $content = preg_replace("#(.*?)text/plain(.*?)$#is","$2",$content);
   @fclose ($fp);
   if (preg_match("#404#",$response)) return false;
   else return trim($content);
}
$ausgabe="";
if (function_exists('fsockopen')) {
   $version_new = version();
   if ($version_new == THIS_VERSION) {
      $ausgabe .= "<table>\n<tr>\n<td><img src=\"images/version.gif\" /></td>\n";
      $ausgabe .= "<td><span style=\"font-weight: bold; color: #1bdc16;\">Deine Version ist auf den neusten Stand: ";
      $ausgabe .= THIS_VERSION."</span></td>\n</tr>\n</table>\n";
   } else {
      $ausgabe .= "<table>\n<tr>\n<td><img src=\"images/version_old.gif\" /></td>\n<td>";
     $ausgabe .= "<span style=\"font-weight: bold; color: red;\">Installierte Version: ".THIS_VERSION."</span><br />";
     $ausgabe .= "<span style=\"font-weight: bold; color: #1bdc16;\">Neuste Version".$version_new."</span><br />";
     $ausgabe .= "<span style=\"font-weight: bold; \">Download: </span><a href=\"".$url_h."\" target=\"_blank\" title=\"".$url_h."\"><span style=\"font-weight: bold; \">".$url_h."</span></a>";
     $ausgabe .= "</td>\n</tr>\n</table>\n";
   }
} else {
   $ausgabe .= "<br />Die Funktion fsockopen ist auf deinen Webserver nicht aktiviert!<br />";
   $ausgabe .= "Die neuste Version des Scriptes zum downloaden findest du unter <a href=\"".$url_h."\" target=\"_blank\" title=\"".$url_h."\"><span style=\"font-weight: bold; \">".$url_h."</span></a><br /><br />";
}


opentable("Version Check");
echo $ausgabe;
closetable();
?>


TXT file, ausgelesen werden soll xxx765

xxx761,
xxx762,
xxx763,
xxx764,
xxx765


Wie muss ich es nun anstellen das er das komplette Dokument checkt,
es sollte auch so funktionieren dass wenn er was da zwischen checken soll auch was findet ^^

MfG MaZz
Bearbeitet von MaZzIMo24 am 19.01.2011 00000001 13:41
 
SC-Ad-Bot
 
MaZzIMo24
ja weiss ich, habe auch schon gegooglet, aber hatte keine passenden worte zu den thema gefunden , ich google mal weiter ^^


EDIT: ich finde nichts was mich weiterbringt, habe wohl nicht die passenden fachbegriffe, finde nur daten übers auslesen und da kann ich schon selber 3 varianten schreiben
Bearbeitet von MaZzIMo24 am 19.01.2011 00000001 09:39
 
MaZzIMo24
ok ich probiere es aus


EDIT>>>

ich habe nun alle möglichkeiten die ich kenne probiert, es hat aber nicht gefunzt,

könntest du vieleicht den code in meinen schnipzel einarbeiten, *liebguck*
Bearbeitet von MaZzIMo24 am 19.01.2011 00000001 10:25
 
emblinux
Ich hab da mal kurz was zusammengebastelt.


<?php                                                                                                                                       
$url = "http://www.heiseclan.de/versions/versionen.txt";                                                                                   

function getAllVersions($url)
{                           
  $retValue = array();       
  $url_p = @parse_url($url);
  $host = $url_p['host'];   
  $port = isset($url_p['port']) ? $url_p['port'] : 80;
  $fp = @fsockopen($url_p['host'], $port, $errno, $errstr, 5);
  if (!$fp) return false;                                     
  @fputs($fp, 'GET '.$url_p['path'].' HTTP/1.1'.chr(10));
  @fputs($fp, 'HOST: '.$url_p['host'].chr(10));
  @fputs($fp, 'Connection: close'.chr(10).chr(10));
  $response = @fgets($fp, 1024);
  $content = @fread($fp,1024);
  $content = preg_replace("#(.*?)text/plain(.*?)$#is","$2",$content);
  $content = trim($content);
  @fclose ($fp);
  if (!preg_match("#404#",$response))
    {
      $tmp = explode("\n",$content);
      if ( count($tmp) > 0 )
        {
          foreach ( $tmp as $a )
                 {
                   $tmp2 = explode(":",$a);
                   if ( count($tmp2) == 2 )
                     {
                       $retValue[ $tmp2[0] ] = $tmp2[1];
                     }
                 }
        }
    }
  return $retValue;
}

function getVersion($url, $s)
{
  $retValue = "";
  $versionen = getAllVersions($url);
  if ( isset($versionen[$s]) )
      {
        echo $versionen[$s]."<br />";
      }

  return $retValue;
}

if (function_exists('fsockopen'))
  {
    echo getVersion($url,"wiop");
  }

?>


Die Textdatei, die dort eingelesen wird muss wie folgt aufgebaut sein:



psp:1.3
ticker:1.01
wiop:2.0


Ich habe jetzt Kürzel für die Scripte verwendet gefolgt von der Version getrennt mittels : Und das ganze immer Zeilenweise.

In meinem Beispiel wird dann die Version des Wer ist Online Panel angezeigt.
Das Lernen ist wie ein Meer ohne Ufer. Konfuzius

Alles wird Gut!

KEIN Support per Mail, ICQ oder PN !
www.heiseclan.de/fusion/sig.gif

www.heiseclan.de/geosig.gif
 
MaZzIMo24
Sehr schön, funktioniert wie immer wunderbar , du hast mir sehr geholfen... habe mich 5 stunden dran versucht und nur im Kreis gedreht


danke ^^
 
MaZzIMo24
hallo ^^

diese frage beziehe ich einmal auf emblinux seinen Code, (frage ist auch hauptsächlich an ihn gestellt)

also er funktioniert super, nur schaffe ich es nicht diesen code so um zu formen dass er anzeigt , diese Version ist aktuell, oder diese Version ist nicht aktuell,

wenn du Lust und Zeit hast könntest du deinen Code vllt etwas erweitern.

Danke im vorraus, MfG MaZz
Bearbeitet von MaZzIMo24 am 23.01.2011 00000001 03:54
 
emblinux
Mein Code-Schnipsel holt dir lediglich die aktuelle Version von deinem Server, die du hinterlegt hast.

Mit welcher Version du das nun vergleichst liegt bei dir. Die Versionen der einzelenen Infusions werden z.B. auch in der Tabelle fusion_infusions mit gespeichert. Also könntest du dort die Version für die entsprechende Infusion ermitteln und diese dann mit der von deinem server vergleichen und dann die Anzeige entsprechend gestalten.

Oder du machst es so, wie bei deinem Beispielcode, wo du die Version in der Datei, wo du den Versionscheck machst mit als Konstante (DEFINE) angibst.
Das Lernen ist wie ein Meer ohne Ufer. Konfuzius

Alles wird Gut!

KEIN Support per Mail, ICQ oder PN !
www.heiseclan.de/fusion/sig.gif

www.heiseclan.de/geosig.gif
 
Springe ins Forum:

 Ähnliche Themen 

TEST
Thema Forum Antworten Letzter Beitrag
Sendeplan in eine Extra datei neu einbinden? PHP & MySql 1 30.12.2012 00000012 16:45
Hilfe beim Banner PSD Datei Grafik und Design 5 20.06.2012 00000006 10:07
uploads durch admin prüfen PHP & MySql 2 24.10.2011 00000010 05:05
Sound datei einfügen!? Allgemeine Diskussionen 1 19.05.2011 00000005 06:13
scorsystem datei Infusionen 17 07.02.2011 00000002 22:08
Heiseclan