Autor | Zpráva | ||
---|---|---|---|
swetko Profil |
#1 · Zasláno: 14. 5. 2009, 18:36:11
dobry den,
mam takyto kod: <?php $text="8text8 7text7 6text6 5text5 4text4 3text3 2text2 1text1"; $je=1; while ($je<=8){ $ma_byt="XX"; $upravene=str_replace($je++, $ma_byt, $text); echo $upravene."<br>"; } ?> chcel by som aby bol takyto vystup: XXtextXX XXtextXX XXtextXX XXtextXX XXtextXX XXtextXX XXtextXX XXtextXX samozrejme vystup je takyto: 8text8 7text7 6text6 5text5 4text4 3text3 2text2 XXtextXX 8text8 7text7 6text6 5text5 4text4 3text3 XXtextXX 1text1 8text8 7text7 6text6 5text5 4text4 XXtextXX 2text2 1text1 8text8 7text7 6text6 5text5 XXtextXX 3text3 2text2 1text1 8text8 7text7 6text6 XXtextXX 4text4 3text3 2text2 1text1 8text8 7text7 XXtextXX 5text5 4text4 3text3 2text2 1text1 8text8 XXtextXX 6text6 5text5 4text4 3text3 2text2 1text1 XXtextXX 7text7 6text6 5text5 4text4 3text3 2text2 1text1 chapem ze preco je to tak ale neviem to napisat mnou zelanym sposobom poradite mi ? dakujem |
||
AM_ Profil |
#2 · Zasláno: 14. 5. 2009, 18:44:10
str_replace má čtvrtý nepovinný výstupní parametr count. takže
$ma_byt="XX"; $upravene=str_replace($je++, $ma_byt, $text, $count); if ($count > 0) { echo $upravene."<br>"; } } |
||
TomášK Profil |
#3 · Zasláno: 14. 5. 2009, 18:45:29 · Upravil/a: TomášK
$text="8text8 7text7 6text6 5text5 4text4 3text3 2text2 1text1"; $je=1; while ($je<=8) { $ma_byt="XX"; $upravene=str_replace($je++, $ma_byt, $text); } echo $upravene."<br>"; |
||
swetko Profil |
#4 · Zasláno: 14. 5. 2009, 19:01:49
AM_
to vypise to iste ako predtym - osem riadkov a na kazdom jedna zmenena hodnota TomášK vypise: XXtextXX 7text7 6text6 5text5 4text4 3text3 2text2 1text1 |
||
TomášK Profil |
#5 · Zasláno: 14. 5. 2009, 19:07:10
swetko
Máš pravdu, měl jsem to vyzkoušet. $text="8text8 7text7 6text6 5text5 4text4 3text3 2text2 1text1"; $je=1; $upravene = $text; while ($je<=8) { $ma_byt="XX"; $upravene=str_replace($je++, $ma_byt, $upravene); } echo $upravene."<br>"; Kód AM_ nedělá úplně totéž, záleží na tom, co přesně chceš. Zalomení řádků lze odstranit přesunutím <br> za konec cyklu. |
||
swetko Profil |
#6 · Zasláno: 14. 5. 2009, 19:10:46
TomášK
dakujem krasne, toto je to co som potreboval |
||
AM_ Profil |
#7 · Zasláno: 14. 5. 2009, 19:23:48
Jo, sorry, ze zadání se to nedalo jednoznačně pochopit. Tohle jde ještě jednodušeji:
$upravene = str_replace(array(1,2,3,4,5,6,7,8), $ma_byt, $upravene); a máš to jedním příkazem bez cyklu. |
||
swetko Profil |
#8 · Zasláno: 14. 5. 2009, 19:45:33
AM_
ano ale $je<=8 ja neskor chcem nahradit $hodnotou, ktora nebude vzdy rovnaka, neviem ako by to fungovalo |
||
AM_ Profil |
#9 · Zasláno: 14. 5. 2009, 20:05:58
tak si to pole vytvoříš dynamicky, řekněme:
$to_replace = array(); for ($i = 1; $i <= $max; $i++) $to_replace[] = $i; nebo tak prostě podobně. Jednoduše řečeno, pokud chceš, aby se ti jedním str_replace nahradilo více různých podřetězců, nacpi všechny možnosti do pole a předej je str_replace, které zavoláš jen jednou. Možná by to šlo i přes regulární výrazy, tedy preg_replace, ale to těžko říct, když nevidím, jak to bude doopravdy. |
||
Časová prodleva: 15 let
|
0