txt en php

  • Onderwerp starter Onderwerp starter cars
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

cars

Gebruiker
Lid geworden
12 jul 2007
Berichten
76
Ik ben nog niet zo bekend met txt files en php.

Is het mogelijk om een waarde te laten nakijken in een text file en als het gevonden is 210 regels na de waarde te pakken? (gewoon een vraagje).
 
Dat kan best.

Als de file niet te lang is, kun je het beste gebruik maken van File, alles lezen in een array, en dan daarin zoeken:

PHP:
$checkvalue = 'x';

function checkfor( $checkvalue ) {

$array = file( 'filename.txt' );
  foreach ( $array as $key => $value ) {
    if ( $checkvalue == $value ) {
      return $array[ $key + 210 ];
    }
  }

}

Maar wat wil je precies bereiken? Want volgensmij zijn er veel makkelijkere of betere oplossingen voor ;)
 
Dat weet ik, een vriend van me heeft een programma geschreven die een output geeft van alle statestieken in een text file. Hij vroeg mij een zoek functie te maken waarmee hij dan de waardes kon laten uitprinten op de site.

Ps de file is erg groot. Moet ik dan gebruik maken van fgets();?

alvast hartstikke bedankt.
 
Jep en dan wordt het script iets lastiger, maar kijk maar eens of je er uit komt :)

Als het meer dan een paar MB is moet je idd regel voor regel gaan lezen, denk ik.
 
ik ben niet helemaal bekend met functie's maar ik heb het geprobeerd toch krijg ik wel elke keer een foutmelding: Missing argument 1 for checkfor() in /mnt/web2/31/92/51552192/htdocs/stats/search2.php on line 24.

De lijn waar die zegt waar een fout in zit is: function checkfor($checkvalue) {

Code:
PHP:
$checkvalue = $_POST['search'];
 
function checkfor($checkvalue) {
 
$array = file( 'stats.txt' );
  foreach ( $array as $key => $value ) {
    if ( $checkvalue == $value ) {
      return $array[ $key + 210 ];
	  echo $array;
    }
  }
 
}
checkfor();
 
Je zult de functie nog een argument moeten meegeven:

i.p.v.
PHP:
checkfor();

PHP:
checkfor( $checkvalue );
 
Fout is inderdaad weg, thx erik en thx Frats voor het helpen!

Nu moet ik het alleen nog werkend maken haha.
 
Ik heb geprobeerd om het te laten draaien maar ik krijg maar geen output.

PHP:
<form id="form1" name="form1" method="post" action="">
  <label>Search
  <input type="text" name="search" id="search" />
  </label>
  <p>
    <label>
    <input type="submit" name="Submit" id="Submit" value="Submit" />
    </label>
  </p>
</form>
<?php
 
 $checkvalue = $_POST['search'];
 
function checkfor($checkvalue) {
 
$array = file( 'stats.txt' );
  foreach ( $array as $key => $value ) {
    if ( $checkvalue == $value ) {
      return $array[ $key + 2 ];
    }
  }
 
}
echo checkfor($_POST['search']);

?>

Elke keer als ik submit krijg ik niks te zien,
In de textfile staat dit:

Code:
8927e2b5ca2d7336bf59adfaecbcf698
sky Pr0n3
a424aa287c03586d9f68982d3557895f
L00n3y&noob
f444256bea9cb6bdcafd574a634f932d
Blackrj
b15c720cad4b7c731541224e301f826d
[Cowboy]Varwe
 
Laatst bewerkt:
Je echo't ook niks? De functie geeft een waarde terug, geen output.

Enneh, hij skipt 210 regels vooruit, dus je file is niet lang genoeg om output te geven.
 
editted, ik had txt file verkleint.

Maar kan wat ik wil ook met een output?
 
Je kunt de return van de functie outputten, als dat genoeg is?

PHP:
echo checkfor( '12haas.' );
 
Dus 12haas kijk die in de text file na en zoja dan pakt die 2 lijnen?

Ik ben super dankbaar dat je wou helpen frats.
 
Mnee dan pakt ie de waarde die 210 regels lager staat.

Je kunt aanpassen hoe ver hij moet springen door het getal 210 in de functie te vervangen door iets anders; als wat je nodig hebt op de volgende regel staat, dan moet je er +1 van maken.
 
ik heb het opgelost elke keer als ik nu zoekt en vind pakt die de volgende lijn en print die uit.

Maar dit komt mede dankzij frats met jou functie kon ik verder werken, bedankt daarvoor!

Ik heb hem een beetje aangepast waardoor je ook de desgewenste informatie in een $value kan stoppen en dan kan je die ergens anders voor gebruiken.

Dit is de code die ik nu gebruik:
PHP:
<form id="form1" name="form1" method="post" action="">
  <label>Search
  <input type="text" name="Search" id="Search" />
  </label>
  <p>
    <label>
    <input type="submit" name="Submit" id="Submit" value="Submit" />
    </label>
  </p>
</form>
<?php 

$bestand = file('stats.txt');
$zoek = $_POST['Search']; 
foreach ($bestand as $lijn_num => $lijn) {
    if(trim($lijn) == $zoek) {
	   $value1 = $bestand[$lijn_num+1];
           echo $value;
           break;
	}
}
?>
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan