Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak odczytac dane z pliku tekstowego
Forum PHP.pl > Forum > Przedszkole
JamalBIG
Witam

W jaki sposob odczytac a nastepnie wyswietlic dane z pliku tekstowego np. jezeli chcialbym odczytac pole name z pliku tekst.txt jezeli mam taki tekst:

elcome_to_2k8-cr.mp3eee4:name:VA-DJ_31_Degreez-Forecast_16-(Bootleg)-2008-CR10:name.utf-846:VA-DJ_31_Degreez-Forecast_16-(Bootleg)-2008-CR12:piece lengthi65536e6:piece

Pozdrawiam
aiv
Zapoznaj się z funkcjami:
fopen" title="Zobacz w manualu PHP" target="_manual - otwieranie pliku
fgetcsv" title="Zobacz w manualu PHP" target="_manual - odczytywanie pliku z liniami podzielonymi usystematyzowanym separatorem
fclose" title="Zobacz w manualu PHP" target="_manual - zamykanie pliku

zamiast ww. funkcji mozesz zrobic to jeszcze tak:
file" title="Zobacz w manualu PHP" target="_manual - otworzenie pliku i pobranie zawartosci do tablicy a pozniej przejechac po tablicy pętlą for" title="Zobacz w manualu PHP" target="_manual
AxZx
kombinuj jakos tak
  1. <?php
  2. $dane = file_get_contents('plik.txt');
  3. $nowe = preg_match('|name:(.*):|', $dane);
  4. ?>
JamalBIG
<?php
$dane = file_get_contents('plik.txt');
$nowe = preg_match('|name\:(.*)\:|', $dane);
?>

Przy tym kodzie wyskakuje tylko '1' albo '0' wiec pewnie w '|name\:(.*)\:|' jest problem... Wiecie moze co jest zle albo gdzie moge znalezc instrukcje 'co sie tu wpisuje'?
Cezar708
Jeśli format stringa jest taki sam (czyli zaczyna się od name: a kończy dwukropkiem) to wystarczy:
  1. <?php
  2. $str = "name:VA-DJ_31_Degreez-Forecast_16-(Bootleg)-2008-CR10:";
  3.  
  4. $str = ltrim($str, "name:");
  5. $str = rtrim($str, ":");
  6.  
  7. echo $str;
  8. ?>


w innych wypadkach potrzebne Ci będzie wyrażenia regularne. ( a o tym już było na tym forum nie raz )
webdice
Cytat(JamalBIG @ 17.01.2008, 14:32:43 ) *
<?php
$dane = file_get_contents('plik.txt');
$nowe = preg_match('|name\:(.*)\:|', $dane);
?>

Przy tym kodzie wyskakuje tylko '1' albo '0' wiec pewnie w '|name\:(.*)\:|' jest problem... Wiecie moze co jest zle albo gdzie moge znalezc instrukcje 'co sie tu wpisuje'?


Funkcja preg_match" title="Zobacz w manualu PHP" target="_manual przyjmuje jeszcze trzeci parametr.

  1. <?php
  2. $nowe = preg_match('|name:(.*):|', $dane, $res);
  3.  
  4. print_r ($res);
  5. ?>
JamalBIG
Juz sie troche pogubilem... Chodzi mi o kod ktory bedzie wszystko obcinal co jest przed name a nastepnie obcinal wszystko co jest po drugim : (dwukropku), tak aby tekst w postaci

ble1ble2ble3:name:JakasNazwa:ble4ble5ble6

odczytany z pliku plik.txt, wyswietlil mi sie jako:

name:JakasNazwa

Pozdrawiam
Cezar708
to może tak:
  1. <?php
  2. $str = "ble1ble2ble3:name:JakasNazwa:ble4ble5ble6";
  3. $str = strstr($str, "name:");
  4. $a = explode(":", $str);
  5. $str = "name:".$a[1];
  6. echo $str;
  7. ?>
JamalBIG
Dzieki wielkie dziala dokladnie tak jak chcialem!

A jeszcze jedno...
Jezeli mial bym kilka ":"(dwukropkow)?
Np.

ble1ble2ble3:name:Jakas:Nazwa:Tutaj:ble4ble5ble6

I chcialbym miec:

name:Jakas:Nazwa:Tutaj
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.