![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 1 237 Pomógł: 245 Dołączył: 1.07.2009 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Cześć,
Wyrażenia regularne nie są moją najmocniejszą stroną. Chcę aby podmieniało mi linki na klikalne linki. Innymi słowy aby wszystko pomiędzy stringami 'www.' , 'http://' oraz 'https://' aż do pierwszej napotkanej spacji albo znaku nowej linii, albo kropki po której jest spacja czy nowa linia było wrzucane w a href. Zaadoptowałem taki oto kod.
Wszystko pięknie oprócz tego że konwertuje każdy tekst przed kropką. Czyli strona.pl zostanie przekonwertowana. Fajnie, ale strona.strona też ![]() Pomóżcie. -------------------- Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami... -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc! -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 429 Pomógł: 40 Dołączył: 3.01.2016 Skąd: Łowicz Ostrzeżenie: (0%) ![]() ![]() |
Twoje założenia moja wersja detekcji
-------------------- Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 237 Pomógł: 245 Dołączył: 1.07.2009 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
No ok, coś robi - rzeczywiście wrzuca do tablicy tylko same linki, ale jak ma mi to pomóc? W tablicy mam kilka wystąpień tego samego stringa. Nie wiem jak miałbym wziąć cały string, cały tekst i podmienić tylko te stringi (linki) w nim, które mam w tablicy.
Twój przykład nie przekształci tego:
w to: Kod <a href="https://wp.pl">https://wp.pl</a> wasddp.pl a to jest strona.strona <a href="www.ada.pl">www.ada.pl</a> '; Sama detekcja mi nie wystarczy, bo za cienki jestem w regexy i nie rozumiem działania funkcji na nich operujących. Naprowadź mnie pls jak osiągnąć to co zamierzam, używając Twojej detekcji. Dzięki. Ten post edytował sadistic_son 22.02.2021, 23:24:22 -------------------- Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami... -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc! -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 152 Pomógł: 1684 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Kod $regex = '/(.*?)(https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]+\.[^\s]{2,}|www\.[a-zA-Z0-9]+\.[^\s]{2,})/';
$str = 'Jest strona www.domena.pl , jest też http://domena.pl oraz jest inna: https://domena.pl, są pewnie też inne strony.'; echo preg_replace($regex, '$1<a href="$2">$2</a>$3', $str); Ten post edytował trueblue 23.02.2021, 13:00:45 -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 237 Pomógł: 245 Dołączył: 1.07.2009 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Wspaniale, jesteśmy coraz bliżej celu.
Wszystko działa pięknie dla stringów http:// , https:// http://www . Jedynie www.wp.pl przekonwertuje na adres_mojego_servera.pl/www.wp.pl ![]() Dlaczego tak się dzieje? -------------------- Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami... -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc! -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 152 Pomógł: 1684 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Kod $str = 'Jest strona www.domena.pl , jest też http://domena.pl oraz jest inna: https://domena.pl, są pewnie też inne strony.';
$regex = '/(.*?)(https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]+\.[^\s]{2,}|www\.[a-zA-Z0-9]+\.[^\s]{2,})/'; $regex2 = '/<a(.*?)href="(?!http:\/\/|https:\/\/)/'; $str = preg_replace([$regex,$regex2], ['$1<a href="$2">$2</a>$3', '<a$1href="http://$2'], $str); echo $str; -------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 237 Pomógł: 245 Dołączył: 1.07.2009 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
@trueblue - doceniam Twoją pomoc, ale ten kod nie działa, a ja nie potrafię znaleźć błędu. Do tego jeszcze mój hosting zrezygnował z wyświetlania błędów i teraz wali tylko HTTP ERROR 500 gdy coś jest nie tak, żadnych podpowiedzi
![]() Ten post edytował sadistic_son 24.02.2021, 17:52:17 -------------------- Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami... -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc! -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 5 965 Pomógł: 1023 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Ty sterujesz wyświetlaniem błędów a nie twój hosting. Poczytaj przyklejony temat.
-------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 6 152 Pomógł: 1684 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
-------------------- |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 429 Pomógł: 40 Dołączył: 3.01.2016 Skąd: Łowicz Ostrzeżenie: (0%) ![]() ![]() |
po modfikacji , rozpoznaje wielki litery i przecinek usunięty z adresu
Kod $str = 'Jest strona WWW.domenA.pl,
jest też http://domena.PL jest i http://www.Domena.pl, oraz jest inna: https://domena.pl, są pewnie też inne strony.'; $regex = '/(.*?)(https?:\/\/(?:www\.|(?!www))[\w\d][\w\d-]+[\w\d]\.[^\s\,]{2,}|www\.[\w\d][\w\d-]+[\w\d]\.[^\s\,]{2,}|https?:\/\/(?:www\.|(?!www))[\w\d]+\.[^\s]{2,}|www\.[\w\d]+\.[^\s\,]{2,})/i'; $regex2 = '/<a(.*?)href="(?!http:\/\/|https:\/\/)/'; $str = preg_replace([$regex,$regex2], ['$1<a href="$2">$2</a>$3', '<a$1href="http://$2'], $str); echo $str; Ten post edytował LowiczakPL 25.02.2021, 07:52:54 -------------------- Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
|
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 1 237 Pomógł: 245 Dołączył: 1.07.2009 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Ewidentnie ta jedna linijka wywala mi skrypt:
Czy to możliwe, że ta funkcja działa inaczej (bądź nie działa w ogóle) w zależności od wersji php (oczywiście dla wersji po jej wprowadzeniu)? Mój hosting jest na PHP Version 5.2.17 Ten post edytował sadistic_son 25.02.2021, 11:05:54 -------------------- Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami... -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc! -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 6 152 Pomógł: 1684 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Z tego co widzę argumenty do preg_replace można przekazywać jako tablice od wersji 5.4, choć dokumentacja o tym nie pisze.
Albo zmień wersję PHP (naprawdę 5.2? ![]() -------------------- |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 1 237 Pomógł: 245 Dołączył: 1.07.2009 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Rzeczywiście, wersja php była winna. Nie wiedziałem, że jak hosting się migruje na nowszą wersję to ja też muszę zmienić w ustawieniach domeny wersję której chcę używać, więc byłem na 5.2 ciągle
![]() Wspaniele teraz wszystko działa! Dzięki wielkie za pomoc koledzy! PS to chyba koniec mojej zabawy z php ![]() ![]() ![]() Ten post edytował sadistic_son 25.02.2021, 13:37:50 -------------------- Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami... -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc! -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 429 Pomógł: 40 Dołączył: 3.01.2016 Skąd: Łowicz Ostrzeżenie: (0%) ![]() ![]() |
Zmień na 5.6.x w maksymalenej wersji X jaką możesz dać i to powinno pomóc, w 7 jest mnóstwo zmian, stary kod raczej nie pójdzie na 7
Ten post edytował LowiczakPL 25.02.2021, 18:02:15 -------------------- Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 6.03.2021 - 01:58 |