Autor | Zpráva | ||
---|---|---|---|
Alexi Profil * |
#1 · Zasláno: 22. 12. 2011, 11:35:57
Ahoj, mám tento script:
$str = "Test odkazu www.odkaz.cz nebo http://www.odkaz.cz či www.odkaz.cz"; $link = @ereg_replace("[a-zA-Z]+://([.]?[a-zA-Z0-9_/-])*", "[* CENSORED *]", $str); $link = @ereg_replace("[a-zA-Z]+://www.([.]?[a-zA-Z0-9_/-])*", "[* CENSORED *]", $str); $link = @ereg_replace("www.([.]?[a-zA-Z0-9_/-])*", "[* CENSORED *]", $str); echo $link; chci, aby z toho řetězce vzniklo tohle: Test odkazu [* CENSORED *] nebo [* CENSORED *] či [* CENSORED *] ale místo toho vnzniká tohle: Test odkazu [* CENSORED *] nebo http://[* CENSORED *] či [* CENSORED *] ví nekdo přoč? děkuju |
||
Tori Profil |
#2 · Zasláno: 22. 12. 2011, 11:42:51 · Upravil/a: Tori
Alexi:
Protože si proměnnou $link pořád přepisujete, a přitom nahrazení děláte pokaždé v původním textu (místo ve výsledku z předchozího replace). edit: Použila bych preg_replace, a šlo by to i jedním regulárem: $re = '~[a-zA-Z]+://(www.)?([.]?[a-zA-Z0-9_/-])+|www.([.]?[a-zA-Z0-9_/-])+~i'; echo preg_replace($re, '[* CENSORED *]', $str); |
||
Alexi Profil * |
#3 · Zasláno: 22. 12. 2011, 11:45:31
Tori:
Děkuji moc, nevšiml jsem si, moje hloupost. |
||
Časová prodleva: 13 let
|
0