Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2011-06-06 12:11:06

  debbie - Użytkownik

debbie
Użytkownik
Zarejestrowany: 2006-09-19

php explode i problem z większą ilością spacji

Witam! Mam taki problem odnośnie dzielenia wyrazów za pomocą explode.
Mianowicie mam plik txt z mniej więcej taką treścią:


testettstststts 222222 teestttett
tetadt    2345 uweqweihq
poipoio       09876 qwqwqwqwq


następnie kod:

Kod:

$plik = fopen("plik.txt", "rb");

while (!feof($plik))
{
    $linia_text = fgets($plik);
    $linia_dane = explode(" ", $linia_text);

echo $linia_dane[1]."<BR>";

Oczywiście wynik jest taki że wyświetla mi różnie dane ponieważ gdzieniegdzie są dwie lub trzy a nawet cztery spacje.
Ma ktoś może pomysł jak to rozwiązać abym miał w konkretnej zmiennej tekstową daną?
Czyli w tym przypadku dla $linia_dane[1]:

222222
2345
09876

Był bym wdzięczny za podpowiedź.

Ostatnio edytowany przez debbie (2011-06-06 12:12:36)


debbie
Wrócę jak zjem zupę i drugie danie - tyle
a oto ta zupa:

Offline

 

#2  2011-06-06 12:28:55

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: php explode i problem z większą ilością spacji

Użyj preg_split zamiast explode.

Offline

 

#3  2011-06-07 14:25:15

  szewczyk - Stary wyjadacz :P

szewczyk
Stary wyjadacz :P
Zarejestrowany: 2006-12-03

Re: php explode i problem z większą ilością spacji

kiedyś coś takiego naskrobałem :

Kod:

$text = substr(preg_replace('((?<=\W)\'|\'(?=\W))', '', $text), 1, -1);
$text = preg_replace('/[\^\$&\(\)<>`"\|,@_\?%~\+\[\]{}:=\/#\\\\;!\*\.\s]+/', ' ', $text);
$text = preg_replace(array('/(\W)(\w{1,2})\040/', '/^(\w{1,2})\040/', '/\040(\w{1,2})(\W)/', '/\040(\w{1,2})$/'), array('$1', ' ', '$2', ' '), $text);        
$words = array_unique(explode(' ', $text));

Ostatnio edytowany przez szewczyk (2011-06-07 14:27:43)

Offline

 

#4  2011-06-07 15:59:51

  czadman - Bicycle repairman

czadman
Bicycle repairman
Skąd: Wrocław
Zarejestrowany: 2005-07-08

Re: php explode i problem z większą ilością spacji

A ja proponuję użyć fgetcsv.
A co do drugiego to chyba wystarczy stworzyć tablicę i dodawać do nie drugi element z każdej zwróconej przez fgetcsv tablicy.
Ale ja tam na php się nie znam.


http://www.debian.org/logos/openlogo-nd-50.png

Offline

 

#5  2011-06-07 21:38:44

  djjanek - Użytkownik

djjanek
Użytkownik
Skąd: whereis
Zarejestrowany: 2007-11-15
Serwis

Re: php explode i problem z większą ilością spacji

Nie wiem czy na spacje zadziała ale na średniki i na przecinki fgetcsv działało super.

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)