![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 19.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam być może z pozoru prosty problem. Podaje tekst do przefiltrowania. Powiedzmy, że jest on fragmentem źródła strony.
I wyrażenie regularne :
Chce podmienić wszystkie hrefy jeżeli nie zawierają w sobie "http://" na http://podmien.pl/skryp.php?itd jeżeli href zawiera w sobie http:// ma pozostać bez zmian. Używając podanego regexpa, linki ze skrypt.php zamienia mi ale ucina pierwsza literę i zostaje http://podmien.pl/krypt.php natomiast <a href="http://strona.pl" title="jakis tytu">strona link</a> zostawia bez mian tak ja chciałem. Jeżeli zmienię regexpa na :
czyli bez pierwszego cudzysłowia linki ze skrypt.php juz nie są ucinane ale za to href="http://strona.pl" title="jakis tytu" zamienia na href="http://podmien.pl/http://strona.pl" title="jakis tytu" Chodzi mi tylko o ten problem. Bardzo proszę nie dawać mi linków do tutoriali itp. mówić żebym sobie przykłady poczytał bo już mam to za sobą. Po prostu nie potrafię zrozumieć ustalania tych reguł. Czy ktoś ma pomysł jak to poprawić? Ten post edytował reegen 27.11.2007, 16:10:07 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
mniej więcej tak:
powodzenia -------------------- - Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... - |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 19.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
mniej więcej tak:
powodzenia Niestety próbowałem , zmieniałem nie działa, poza tym twoja propozycja pozbywa ze źródła "href" :/ Ten post edytował reegen 26.11.2007, 23:30:33 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
kolego reegen:
albo nic nie próbowałeś - albo coś źle przepisałeś - testowałem wyrażenie przed zamieszczeniem i na 100% działa poprawnie. nic nie jest obcinane - co najwyżej tylko tak ci się zdaje, co potwwierdza spostrzeżenie, że nie testowałeś ... a do tego kod który zacytowałeś nie zgadza sie z kodem który tu umieściłem... wklej przykład (konkretną wartość $text) dla którego nie działa - inaczej będę uważał, że coś ściemniasz. -------------------- - Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... - |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 19.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Jasne ,że testowałem oto wynik tego testu przy użyciu tego "prawidłowego" wyrażenia i tekstu z mojego posta :
Nie wiem czym tkwi błąd długo nad tym siedzie opanowałem już poprawne pisane wyrażeń co gdzie i jak wstawiać ale widocznie droga mojej logiki jest błędna mimo wszystko nevt dziękuje za odpowiedz. Widzę, że użytkownicy niechętnie pomagają. Przez to dziadostwo stoję z robota. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 158 Pomógł: 43 Dołączył: 9.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
Sprawdź:
Kod $text1 = preg_replace('/href="[^http:\/\/](.*?)"/', 'href="http://podmien.pl/${1}"', $text);
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
kolego reegen, wieżę, że testowałeś: ale takie wyniki, jak na ekranie są niemożliwe - przed chwilą poświęciłem 15min. żeby to sprawdzić... chyba, że coś jescze robisz między tymi operacjami, albo kod który wstawiasz u siebie, nie jest identyczny z tym tutaj. ale nie ma tego złego, co by na dobre nie wyszło
![]()
a przy okzaji - na tym forum jest wiele osób chętnych do pomocy, ale nie można na nich przenosić odpowiedzialności za to, że coś u ciebie nie działa - im aktywniej współpracujesz przy ustalaniu szczegółów problemu tym szybciej znajdziesz wsparcie... pozdrawiam i powodzenia. Ten post edytował nevt 27.11.2007, 19:00:51 -------------------- - Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... - |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 19.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Sprawdź: Kod $text1 = preg_replace('/href="[^http:\/\/](.*?)"/', 'href="http://podmien.pl/${1}"', $text); Wynik wyrażenia BaN'a : Gdybym wiedział dlaczego ucina pierwszy znak czyli "s" byłbym naprawdę szczęśliwy. Ten post edytował reegen 27.11.2007, 18:53:32 |
|
|
![]()
Post
#9
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
zwracam honor reegen - moje rozwiązanie nie działało poprawnie na kodzie treści którą pokazałeś, sprawdzałem to na prostszych przypadkach... problem okazał sie niebanalny, bo wyrażenia regularne (o ile wiem) nie wspierają wyszukiwania negatywnego typu NIE 'http'...
ale na wszystko można znaleźć haka ![]()
baw się dobrze -------------------- - Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... - |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 19.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
No sprawdziłem i śmiga jak trzeba, dziękuje za pomoc .Widzisz tak jak w temacie niby proste heh.
teraz zostało mi jeszcze opanować co w przypadku gdy :
...będzie slash na początku ![]() |
|
|
![]()
Post
#11
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
wystarczy drobna zmiana w drugim replace:
-------------------- - Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... - |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 19.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
(\/?) co oznacza wystąpienie / 0 lub więcej razy, te wyrażenia nie są takie ciężkie ale gdy człowiek robi coś logicznie i nie działa to w pewnym momencie się głupieje jak to było w mojej sytuacji.
No więc zabieram do dalszej części mojej roboty W KOŃCU:) Ten post edytował reegen 27.11.2007, 19:50:16 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 10:06 |