Autor Zpráva
Sh0wM3
Profil *
Zdravím,
měl bych takový dotaz. Jedná se o dotaz s fcemi substr a strpos. Tyto funkce používám minimálně, proto už vážně nevím. :D
Jedná se o to, že mám řekněme jeden velký soubor, z kterého tahám informace a rozděluji je - řádek po řádku, řádky jsou buď oddělené mezerou, nebo pomlčkou a potřebuji rozdělit jednu věc na dva a ta je zapsaná v tomto formátu:
Trolo: Text[ Druhý text ]
A já potřebuju dostat to "Text" a "Druhý text", ale nedaří se mi to. :D
Už přesně nevím, jak jsem na to šel, jednou se mi to podařilo rozparsovat, ale pak už to nefungovalo. :D
Tuším ale, že to bylo nějak takhle:
substr($retezec, strpos($retezec, +7);
Je mi jasné, že tam musí být ten substr a strpos ještě jednou, ale vážně nevím už jak. S touto fcí jsem dělal dohromady asi 2x. :D
Doufám, že mě chápete a díky za případné rady. :D
peta
Profil
<?php
echo '<pre>';
$str = "Trolo: Text[ Druhý text ]";
$a = strpos($str,':');
$b = strpos($str,'[',$a);
$c = strrpos($str,']');
$parsed = array(
    substr($str,$a+1,$b-$a-1),
    substr($str,$b+1,$c-$b-1)
    );
print_r($parsed);

$patt = '~\:(.*)\[(.*)\]~';
preg_match_all($patt,$str,$matches);
print_r($matches);
?>
Proc se nepodivas do dokumentace na nejake priklady?
Sh0wM3
Profil
Trochu špatně jsem to napsal.
Formát je takový:
IP [Datum | Čas] Bla - Trolo: Text[ Druhý text ], zkoušel jsem to upravovat, to co jsi mi poslal, ale jaksi nejde. Jednoduše mi to tam jen jakoby přepíše ten řádek, ale nevytáhne údaje.
A koukal jsem se na web a zkusil to podle toho nějak složit, ale nepovedlo se, proto jsem také tady. :)
peta
Profil
Sh0wM3: Nevidel jsem tvuj kod, co cekas, ze ti poradim? Zmenil jsi zadani! Pro
$str = "IP [Datum | Čas] Bla - Trolo: Text[ Druhý text ]";
se to chova uplne stejne, obe print_r vypisi totez jako v predchozim pripade.
Sh0wM3
Profil
Nejde, protože v tom času je taky dvojtečka.
A když jsem tam zkusil dát $a = strpos($str,'Trolo:'); tak taktéž nešlo.
peta
Profil
Sh0wM3: To opet menis zadani! Zkus napsat konecne spravne zadani! Kdyz mas jiny retezec, nez napises, jak to mam asi vedet?
Napsal jsi, ze mas text IP [Datum | Čas] Bla - Trolo: Text[ Druhý text ]
Druha dvojtecka se hleda uplne stejne jako prvni, jen musis zmenit vychozi pozici pro hledani jako predchozi dvojtecky. Protoze, kdyz nic nenapises, je to nula, tudiz od zacatku a skonci u prvni dvojtecky. Nic, co byt podle manualu nezvladl. Nebo muzes dvojtecku hledat pozpatku strrpos.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: