Načtení řetezce mezi dvěma značkami do proměné – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Načtení řetezce mezi dvěma značkami do proměné – PHP – Fórum – Programujte.comNačtení řetezce mezi dvěma značkami do proměné – PHP – Fórum – Programujte.com

 

28. 2. 2007   #1
-
0
-

Mám následující problém ....
Mám nějaký řetězec - dejme tomu

[znacka]254[/znacka]
a já bych potřeboval načíst tu část řeťezce mezi značkami do proměné - v tomto případě čáslo 254. Jak byste to řešili ?

Nahlásit jako SPAM
IP: ...–
Když to říkám, tak to asi bude pravda.
olgo0
Věrný člen
28. 2. 2007   #2
-
0
-

To daneka:



$zaciatok=strpos($input,'[znacka]')+strlen('[znacka]');
$koniec=strpos($input,'[/znacka]');
/*$string=substr($input,$zaciatok,$zaciatok-$koniec);*/ //ano tu je chyba nebol som doma ale myslel som na nu =:-)
$string=substr($input,$zaciatok,$koniec-$zaciatok); //takto je to mislim spravne


netestoval som to takze tam mozno bude nejaky posun o jeden-dva znaky, ale malo by to fungovat.

Nahlásit jako SPAM
IP: ...–
"Boze, dopraj mi, prosim ta, petdesiat rokov prace a zabavy, a potom nahlu smrt v spanku." J. Grisham
28. 2. 2007   #3
-
0
-

Lepe a najisto



preg_match("\[znacka\](.*)\[\/znacka\]",$input,$vysledky);


Zakladni vyhoda je, ze to bude fungovat i v pripade, ze tam tech vyskytu bude vic. Ty vysledky najdes v poli $vysledky - samozrejme zacinajicim od nuly o velikosti N kde N je pocet vyskyty. Pak je uz jen pomoci nejake smycky zpracujes.

Nahlásit jako SPAM
IP: ...–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
28. 2. 2007   #4
-
0
-

Díky oboum.

To CommanderZ: Teď jsem zkoušel tohle tvoje řešení a vrací mi to chybu který nerozumim:

Warning: preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslash in /home/touny/www/antonindanek.cz/test.php on line 15


Rozumis ji ty ? :)

Nahlásit jako SPAM
IP: ...–
Když to říkám, tak to asi bude pravda.
28. 2. 2007   #5
-
0
-

olgo píše:#
# To daneka:#
#

#
#$zaciatok=strpos($input,##uvozovka##[znacka]##uvozovka##)+strlen(##uvozovka##[znacka]##uvozovka##);#
#$koniec=strpos($input,##uvozovka##[/znacka]##uvozovka##);#
#$string=substr($input,$zaciatok,$zaciatok-$koniec);#
#
#
##
#netestoval som to takze tam mozno bude nejaky posun o jeden-dva znaky, ale malo by to fungovat.



Až na to, že na konci musi být $koniec-$zaciatok ;) Jinak díky, asi to použiju, protože zrvona v mym pripade tam ty znacky budou maximalne jednou.
Nicmene reseni CommanderZ je urcite hezci a pouzil bych ho i jinde, takze jestli chapes tu chybu, sem s resenim ;).

Nahlásit jako SPAM
IP: ...–
Když to říkám, tak to asi bude pravda.
28. 2. 2007   #6
-
0
-

Tak znovu a lepe, ted jsem to i zkousel, tohle funguje prefektne

preg_match_all("/\[znacka\]([^\[\]]*)\[\/znacka\]/",$input,$vysledky);

Taky jsem radsi pouzil preg_match_all, protoze se to na tohle lepe hodi. To trochu meni vystupni pole - pod indexy [0][0...n] najdes vysledky VCETNE toho tagu, pod indexy [1][0...n] najdes vysledky BEZ tagu. Kdyztak to prozkoumej pomoci print_r

Nahlásit jako SPAM
IP: ...–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
28. 2. 2007   #7
-
0
-

To CommanderZ: Super díky, to určitě použiju - tyhle funkce který používáš vidim poprvně.
Mimochodem mam jedno PDFko se spousty PHP fcema (dostal jsem na CD ke knizce) a tyhle tam jsou v kategorii Funkce pro práci s regulárními výrazy kompatibilní s jazykem Perl - tam mě fakt hledat nenapadlo.

Nahlásit jako SPAM
IP: ...–
Když to říkám, tak to asi bude pravda.
1. 3. 2007   #8
-
0
-

Nehledej v dokumentaci k nejake pritrouble knizce, hledej v oficialni dokumentaci na php.net. Tam je presny popis chovani prikazu a prace s nim. Jsou tam i prikazy a vetsinou i dosti rozsahla diskuze, ktera uz se mi mnohokrat ukazala jako velmi uzitecna. Samozrejme ze je moznist stahnout si to na komp a to jak v CHM tak i v HTML

Nahlásit jako SPAM
IP: ...–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 29 hostů

Podobná vlákna

Proměná, mezi dvěma událostmi — založil Petr Sýkora

C# primka mezi dvema body — založil Kryspin

Rozdíl mezi dvěma zápisy — založil Tomáš

Rozdíl mezi dvěma příkazy — založil Montezo

Dny mezi dvema daty — založil kejta

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý