![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 6.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Jak zrobic wyrazenie regularne usuwajace ze stringa kropke, poza przypadkiem gdy kropka jest w ostatnich 5 znakach stringa (lub opcja ze po kropce nastepuje jpg, png, gif).
Czyli na przyklad mam string xxxxxx.yyyyyyyy.zzzz.jpg zapisany w zmiennej file1 i chcialbym zeby po preg_replace zrobilo sie z tego xxxxxxyyyyyyyyzzzz.jpg. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 84 Pomógł: 0 Dołączył: 17.08.2006 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
a musisz koniecznie użyć regexów ? nie łatwiej (i szybciej) będzie pociąć stringa, wywaliś kropkę i skleić ?
-------------------- Bez takich avatarów - moderator
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 40 Pomógł: 1 Dołączył: 29.12.2003 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
Kod $a = preg_replace_callback('/^([\w\.]*)\.([\w]{1,5})$/', create_function('$m', 'return str_replace(\'.\', \'\', $m[1]).\'.\'.$m[2];'), 'xxxxxx.yyyyyyyy.zzzz.jpg'); Jak już koniecznie muszą być wyrażenia... (ale pewnie i tak można je napisać prościej). Ten post edytował emacieka 6.05.2007, 13:33:29 -------------------- ''' ... Among the blind one eyed man is a king ... '''
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 6.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Kod $a = preg_replace_callback('/^([\w\.]*)\.([\w]{1,5})$/', create_function('$m', 'return str_replace(\'.\', \'\', $m[1]).\'.\'.$m[2];'), 'xxxxxx.yyyyyyyy.zzzz.jpg'); Jak już koniecznie muszą być wyrażenia... (ale pewnie i tak można je napisać prościej). Ale na przyklad z tego stringa juz kropek nie usuwa :S "C:\Documents and Settings\sfd\Ustawienia lokalne\Temporary Internet Files\Content.IE5\YSJUE5V2\135px-Flag_of_Mexico.svg[1].png" Da rade to jakos poprawic? Ten post edytował sfd 6.05.2007, 19:04:51 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 40 Pomógł: 1 Dołączył: 29.12.2003 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
Da
![]() Kod $input = '135px-Flag_of_Mexico.svg[1].png'; $output = preg_replace_callback('/^(.+)\.([\w]{1,5})$/', create_function('$m', 'return str_replace(\'.\', \'\', $m[1]).\'.\'.$m[2];'), $input); Jeszcze możesz spróbować bez regex'ow w ten sposób (od php 5.2):
Tutaj wyjaśnienie: pathinfo" title="Zobacz w manualu PHP" target="_manual // I jeśli chcesz usunąć kropki z "C:\Documents and Settings\sfd\Ustawienia lokalne\Temporary Internet Files\Content.IE5\YSJUE5V2\135px-Flag_of_Mexico.svg[1].png" z zachowaniem ścieżki to polecam ten drugi sposób"
// Pozdrawiam ![]() Ten post edytował emacieka 6.05.2007, 20:35:15 -------------------- ''' ... Among the blind one eyed man is a king ... '''
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 656 Pomógł: 3 Dołączył: 26.10.2005 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
a nie wystarczyło by same polecenie:
str_replace('.', '', $zmienna); ![]() -------------------- zmoderowano - waga i rozmiar
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 6.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Wielkie dzieki. pathinfo rozwiazalo sprawe
![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 09:53 |