Moin!
Ist der Text eindeutig?
Ist die Datei sehr groß?
Ok. Die Datei ist "sehr" groß.
<?
$str="TGS";
$strFile="datei.dat";
Einlesen der einen Zeile mit dem "system()" Befehl und Unix-Zeilenfilter grep
$strZeile=system("grep $str $strFile");
Trennen am Gleichheitszeichen-> Array
$arZeile=explode("=", $strZeile);
Ausgabe des Inhaltes:
echo $arZeile[0];
?>
Variante A1 (mit AWK):
$str="TGS";
$strFile="datei.dat";
Einlesen der einen Zeile mit dem "system()" Befehl und Unix-Zeilenfilter grep und AWK
$strZahl=system("grep $str $strFile | awk -F= '{ print $1 }'");
echo $strZahl;
Du solltest $str und $strFile mit escapeshellcmd() behandeln, falls diese Daten _irgendwie_ von außen beinflusst werden können.
Variante 2 für "kurze" Dateien (Alles in PHP:)
<?
$str="TGS";
$strFile="datei.dat";
$arZeilen=file($strFile);
$arZeilen enthält jetzt als Array die Zeilen der Textdatei.
foreach ($arZeilen as strZeile) {
Für jedes array-Element als Zeile
$arZeile=explode("=", $strZeile);
if ($arZeile[1]==$str) {
echo $arZeile[0];
break;
}
}
?>
Der Unterschied ist folgender: Wenn datei.dat wirklich sehr groß ist ist das nicht nur schneller (der UNIX-Befehl grep ist schnell...), sondern spart auch das Einlesen in PHP: Folge: Du umgehst eine möglicherweise zur Disfunktion führende Speicherbeschränkung :)
Allerdings solltest Du bei solchen Dateigrößen schon eine Datenbank benutzen.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development