tekst bestand uitlezen en zoeken op specifieke tekst

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Piet

piet

20/08/2009 18:27:00
Quote Anchor link
Ik heb een tekst bestand (zie het onderstaande) daar uit wil ik de computernaam filteren. Op het ogenblik markeert mijn code al wel de tekst : 'Computer Name: Henk-vista (' Ik zou eigenlijk willen dat er na afloop 'Computer Name: en het laatste ( nog verwijderd worden. Ik kan niet alleen op Henk-vista zoeken want dit woord komt meer keer voor in het tekst document.

alleen hoe krijg ik die tekst in een variable gestopt zo dat ik hier mee verder kan ...? Ik zie op het ogenblik het complete tekst bestand verschijnen op het scherm..?



php code (heb hem gepost zonder mijn formulier --> heb even een vast waarde ingevuld (q)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
// show.php
// De 2 variabelen hieronder geef je mee aan deze pagina als show.php?q=zoekterm&filename=test.htm
// zoekterm                                                    
//$q = $_GET['q'];

$q = "Computer Name: Henk-vista (";
// pagina waarin term staat
$filename = $_GET['filename'];


if(isset($q) && isset($filename))
{

// lees data van doelpagina in
if(file_exists($filename)) {
$fp = fopen($filename, "r");
$guest_data = fread($fp, filesize($filename));
fclose($fp);
}


// zoekterm vet maken en grijs achtergrondje geven
$content = preg_replace('/'.preg_quote($q).'/i' , '<font style="BACKGROUND-COLOR: #AEEEEE"><b>$0</b></font>', $guest_data);

echo "<b> content </b>";
echo $content;

}


?>




Stuk tekst uit mijn bestand
content Belarf Advisor Current Profirb The license associated with the Belarc Advisor product allows for free personal use only. Use on multiple computers in a corporate, educational, military or government installation is prohibited. See the license agreement for details. The information on this page was created locally on your computer by the Belarc Advisor. Your computer profile was not sent to a web server. Click here for more info. About Belarc System Management Products Your Privacy In page Links: Network Map new Software Licenses Software Versions & Usage new Missing Hotfixes Installed Hotfixes System Security StatusCIS Benchmark Score Available only for Windows 2000, XP Pro, and 2003 Virus Protection Up-to-date Microsoft Security Updates 12 missing Computer Profile Summary Computer Name: Henk-vista (in WORKGROUP) Profile Date
 
PHP hulp

PHP hulp

22/12/2024 11:18:47
 
Kilian Janssen

Kilian Janssen

20/08/2009 19:16:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php

$q
== $string;
$start = "Computer Name:";
$end = "(in WORKGROUP)";

function
get_string_between($string, $start, $end){
$string = " ".$string;
$ini = strpos($string,$start);
if ($ini == 0) return "";
$ini += strlen($start);
$len = strpos($string,$end,$ini) - $ini;
return substr($string,$ini,$len);
}


$pcnaam = string_between($string, $start, $end)

?>


Dit zou de oplossing moeten zijn :)
Gewijzigd op 01/01/1970 01:00:00 door Kilian Janssen
 
Piet

piet

20/08/2009 19:28:00
Quote Anchor link
Misschien een niet zo'n slimme vraag maar waar moet ik dit dan precies tussen zetten. Jouw functie ontleed wel mooi mijn string alleen hoe krijg ik mijn bestand door jouw funtie heen? Ben nog niet zo lang met php bezig sorry...


if(file_exists($filename)) {
$fp = fopen($filename, "r");
$guest_data = fread($fp, filesize($filename));
fclose($fp);
}

// zoekterm vet maken en grijs achtergrondje geven
$content = preg_replace('/'.preg_quote($q).'/i' , '<font style="BACKGROUND-COLOR: #AEEEEE"><b>$0</b></font>', $guest_data);
 
Kilian Janssen

Kilian Janssen

20/08/2009 19:34:00
Quote Anchor link
$guest data, is volgens mij de inhoud van je bestand, dus kan kun je zeggen dat $sting gelijk is aan $guest data, en dan kun je het script gewoon uitvoeren.
Zoiets:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php

if(isset($q) && isset($filename))
{

// lees data van doelpagina in
if(file_exists($filename)) {
$fp = fopen($filename, "r");
$guest_data = fread($fp, filesize($filename));
fclose($fp);
}


$guest_data == $string;
$start = "Computer Name:";
$end = "(in WORKGROUP)";

function
get_string_between($string, $start, $end){
$string = " ".$string;
$ini = strpos($string,$start);
if ($ini == 0) return "";
$ini += strlen($start);
$len = strpos($string,$end,$ini) - $ini;
return substr($string,$ini,$len);
}


$pcnaam = string_between($string, $start, $end)

// zoekterm vet maken en grijs achtergrondje geven
$content = preg_replace('/'.preg_quote($q).'/i' , '<font style="BACKGROUND-COLOR: #AEEEEE"><b>$0</b></font>', $guest_data);

echo "<b> content </b>";
echo $pcnaam;

}


?>
 
Piet

piet

20/08/2009 20:21:00
Quote Anchor link
Niet helemaal toch..?. Mijn quest_data is toch $guest_data = fread($fp, filesize($filename)); En mijn string is mijn tekst die ik zoek "Computer Name: Henk-vista (in WORKGROUP)";

Is dit trouwens geen type fout $ini += strlen($start); moet dit niet zijn $ini == strlen($start); (dus een dubbel = teken)? Die $len waarde krijg ik 24 van terug als ik hem echo?
 
Piet

piet

20/08/2009 20:32:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
// show.php
// De 2 variabelen hieronder geef je mee aan deze pagina als show.php?q=zoekterm&filename=test.htm
// zoekterm
//$q = $_GET['q'];

// pagina waarin term staat
//$filename = $_GET['filename'];


$string = "Computer Name: Henk-vista (in WORKGROUP)";
$filename = "henk-vista.txt";
//$q = $string;

if(isset($string) && isset($filename))
{

// lees data van doelpagina in
if(file_exists($filename)) {
$fp = fopen($filename, "r");
$guest_data = fread($fp, filesize($filename));
fclose($fp);
}


$content = preg_replace('/'.preg_quote($string).'/i' , '<font style="BACKGROUND-COLOR: #AEEEEE"><b>$0</b></font>', $guest_data);

$start = "Computer Name:";
$end = "(in WORKGROUP)";

$string = " ".$string;
$ini = strpos($string,$start);
if ($ini == 0) return "";
$ini += strlen($start);
$len = strpos($string,$end,$ini) - $ini;
$gestript =  substr($string,$ini,$len);

echo "gestript $gestript";
echo "<br>";
//echo "Guest data $guest_data";
}
?>


Dit werkt. Heb alleen jouw functie definities aangepast en toen werkte het "spontaan" Is het ook mogelijk om een wildcard op te geven.

De pcnaam verandert bij elke pc $string = "Computer Name: Henk-vista (in WORKGROUP)"; in bijvoorbeeld $string = "Computer Name: $wildcard (in WORKGROUP)";

Gelieve Niet Bumpen::
Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de Afbeelding knop om je tekst aan te passen.

SanThe.
Gewijzigd op 01/01/1970 01:00:00 door piet
 
Kilian Janssen

Kilian Janssen

21/08/2009 09:37:00
Quote Anchor link
Fijn dat het gelukt is (heb het zelf niet kunnen testen)
En natuurlijk kan dat, dit stukje code pakt gewoon de string tussen 2 andere strings (Computer Name: & (in WORKGROUP). Dus dan maakt het niet uit wat er tussen staat, hij zal het er altijd uit halen.

Groetjes.
 
Piet

piet

21/08/2009 12:53:00
Quote Anchor link
Ik snap niet helemaal wat je precies bedoelt. Moet ik jouw code bij mijn string zetten of bij start/end?

Als ik het zo doe krijg ik als output: gestript & en dat is niet de bedoeling

$string = "(Computer Name: & (in WORKGROUP)";
$filename = "henk-vista.txt";
//$q = $string;

if(isset($string) && isset($filename))
{
// lees data van doelpagina in
if(file_exists($filename)) {
$fp = fopen($filename, "r");
$guest_data = fread($fp, filesize($filename));
fclose($fp);
}

$content = preg_replace('/'.preg_quote($string).'/i' , '<font style="BACKGROUND-COLOR: #AEEEEE"><b>$0</b></font>', $guest_data);

$start = "Computer Name:";
$end = "(in WORKGROUP)";

$string = " ".$string;
$ini = strpos($string,$start);
if ($ini == 0) return "";
$ini += strlen($start);
$len = strpos($string,$end,$ini) - $ini;
$gestript = substr($string,$ini,$len);

echo "gestript $gestript";
echo "<br>";
//echo "Guest data $guest_data";
}
?>
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.