Autor | Zpráva | ||
---|---|---|---|
Stepanka Profil * |
#1 · Zasláno: 28. 10. 2008, 13:00:22
Ahoj,
prosím neporadil by mi někdo s jedním problémem? Mám nějaký takovýto předmět, který se vkládá do e-mailu: např.: [Další projekt 0000059]: Shrnutí [Jiný projekt 0000123]: ProjektXY [úplně jiný 0000012]: Další úkoly Obecný tvar by byl asi takovýto: [COKOLIV CISLO]: COKOLIV A já bych potřebovala dostat z toho předmětu ven jen to číslo. Z prvního příkladu jen "59", z druhého jen "123" atd.. Nevěděl by, prosím, někdo, jak na to? Mockrát děkuju. |
||
keeehi Profil * |
#2 · Zasláno: 28. 10. 2008, 13:47:32
$a = "[Další projekt 0000059]: Shrnutí"; echo $a."<br>"; $a = ltrim(substr($a,strpos($a, "]")-7,7),"0"); echo $a; platí to je pokud těch čísel před "]" je 7, pokud je to jinak, změň sedmičky |
||
Stepanka Profil * |
#3 · Zasláno: 28. 10. 2008, 14:03:04
keeehi
Mockrát děkuju, funguje to pěkně.. Akorát tu mám ještě podobný problém: Mám tenhle text (v nějaké proměnné): Projekt: Další projekt ID problému: 59 Kategorie: Vyvolání: vždy Důležitost: malá Priorita: normální Stav: přiřazený Dohodnutá částka řešiteli: 600 Konečná cena (Kč): 510 Odhadovaná cena (Kč): Odhadovaná pracnost (hod): Odpracovaný čas (hod): Předpokládané datum vyřešení: 2008-11-11 Proplaceno zákazníkem: NE Zaplaceno řešiteli: NE Jde o ten zvýrazněný řádek. Může tam být uvedená hodnota (třeba těch 600), ale taky tam být nic nemusí (stejně jako o dva řádky níž). A já bych potřebovala udělat, aby se ta hodnota (pokud tam je uvedená) nezobrazila. Aby se zobrazila jen dvojtečka a prázdné místo. Nepomohl bys mi, prosím, ještě s tímto? Byla bych moc vděčná. Já na ty práce s řetězci moc nejsem. |
||
Sicario Profil * |
#4 · Zasláno: 28. 10. 2008, 14:26:44
Chces tedy odstranit na kazdem radku znaky za : az do konce radku? Myslim, ze resenim jsou regularni vyrazy.
$out = preg_replace('/:.*$/', ':', $in); |
||
Stepanka Profil * |
#5 · Zasláno: 28. 10. 2008, 14:35:51
Sicario
Jo, ale ne na každém, jen na tom, který začíná "Dohodnutá částka řešiteli:" |
||
keeehi Profil * |
#6 · Zasláno: 28. 10. 2008, 15:59:58
Todle bude asi ono
$a = "Projekt: Další projekt ID problému: 59 Kategorie: Vyvolání: vždy Důležitost: malá Priorita: normální Stav: přiřazený Dohodnutá částka řešiteli: 600 Konečná cena (Kč): 510 Odhadovaná cena (Kč): Odhadovaná pracnost (hod): Odpracovaný čas (hod): Předpokládané datum vyřešení: 2008-11-11 Proplaceno zákazníkem: NE Zaplaceno řešiteli: NE "; echo $a."\n\n"; $aexplod = explode("\n", $a); $aexplod[7] = "Dohodnutá částka řešiteli:"; $a = implode("\n", $aexplod); echo $a; |
||
keeehi Profil * |
#7 · Zasláno: 28. 10. 2008, 16:00:38
echa jsou jen pro kontrolu, nemusí tam být
|
||
Stepanka Profil * |
#8 · Zasláno: 28. 10. 2008, 19:15:25
keeehi
Mockrát děkuju za nápad, ale nejsem si jistá s tím $aexplod[7] =. Možná by se mohlo stát, že ty řádky budou v tom e-mailu uspořádány jinak. Pak mi to třeba změní řádek, který změnit nechci. Asi by to bylo lepší spíš pomocí preg_replace, jak radil Sicario, tak to ještě zkouším s tím.. |
||
nightfish Profil |
#9 · Zasláno: 28. 10. 2008, 19:22:38
Stepanka
$data = "Projekt: Další projekt ID problému: 59 Dohodnutá částka řešiteli: 600 Konečná cena (Kč): 510 Odhadovaná cena (Kč):"; $data = preg_replace("/(Dohodnutá částka řešiteli:)\s+\d+/", "$1", $data); |
||
keeehi Profil * |
#10 · Zasláno: 28. 10. 2008, 19:37:56
Tak že to byl email jsem nevěděl, nikde jsem si toho nevšiml, proto jsem předpokládal, že je to třeba získáno z databáze.
|
||
Stepanka Profil * |
#11 · Zasláno: 28. 10. 2008, 20:33:04
nightfish
Děkuju, takhle je to úplně skvělé :-) keeehi Moje vina, nenapsala jsem to. I tak mockrát díky. |
||
Stepanka Profil * |
#12 · Zasláno: 28. 10. 2008, 20:53:30
Teda ještě detail...
V tom emailu se mi generuje třeba i řádek 2008-10-28 20:44karel novotny90Dohodnutá částka řešiteli600 => 750 2008-10-28 20:45robert sobota90Report přidán: 0000157 A tady už to řešení nefunguje.. Zkusila jsem to Tvoje doplnit takhle: $t_message = preg_replace("/(Dohodnutá částka řešiteli:)\s+\d+/", "$1", $t_message); $t_message = preg_replace("/(Dohodnutá částka řešiteli)\s+\d+/", "$1", $t_message); Ale nemůžu vygooglovat, co znamená to \s+\d+/, je asi potřeba to nějak upravit, protože ty horní řádky to v tom emailu zobrazuje pořád :-( Potřebovala bych tam zase zobrazit třeba jen toto: 2008-10-28 20:44karel novotny90Dohodnutá částka řešiteli => Help please.. Naposled, slibuju.. |
||
keeehi Profil * |
#13 · Zasláno: 28. 10. 2008, 21:02:20
v regulérních výrazech se moc nevyznám, ale něco jsem našel v knížkách:
\s+: vyhovují řeťězce obsahující alespoň jeden prázdný znak \d: vyhovují řetězce obsahující alespoň jednu číslici |
||
Stepanka Profil * |
#14 · Zasláno: 28. 10. 2008, 21:08:49
keeehi
Aha, super, to mi moc pomohlo. Zkusila jsem $t_message = preg_replace("/(Dohodnutá částka řešiteli)\d+/", "$1", $t_message); a funguje. Děkuju! |
||
keeehi Profil * |
#15 · Zasláno: 28. 10. 2008, 21:12:21
není zač
|
||
Časová prodleva: 15 let
|
0