Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

3 Stron V  < 1 2 3 >  
Reply to this topicStart new topic
> Usuwanie pustych atrybutów html, regex
trzczy
post 9.03.2018, 22:42:40
Post #21





Grupa: Zarejestrowani
Postów: 460
Pomógł: 49
Dołączył: 5.06.2011

Ostrzeżenie: (0%)
-----


Jasno stawiam sprawę: dajesz testy, znajdę regex. Reszta to twój ból.
Go to the top of the page
+Quote Post
SmokAnalog
post 10.03.2018, 00:41:46
Post #22





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Nie chcę brzmieć jak tatuś, ale przemyśl swoje zachowanie tongue.gif Bo zachowujesz się jak księżniczka, co łaskę robi, że paluszkiem kiwnie. Albo pomagasz jak należy, albo wcale.
Go to the top of the page
+Quote Post
trzczy
post 10.03.2018, 01:05:30
Post #23





Grupa: Zarejestrowani
Postów: 460
Pomógł: 49
Dołączył: 5.06.2011

Ostrzeżenie: (0%)
-----


Kojarzysz mi się głównie z blamażem file_get_contents. Fajnie, że już jesteś z powrotem.
Go to the top of the page
+Quote Post
SmokAnalog
post 10.03.2018, 01:11:27
Post #24





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Hę?
Go to the top of the page
+Quote Post
trzczy
post 10.03.2018, 01:22:17
Post #25





Grupa: Zarejestrowani
Postów: 460
Pomógł: 49
Dołączył: 5.06.2011

Ostrzeżenie: (0%)
-----


Zniknąłeś na parę dni, jak dostałeś srogą naukę. Nie przeprosiłeś osób, które wcześniej potraktowałeś obcesowymi uwagami ad personam. Ten temat z curlem, crawlerem i file_get_contents.
Go to the top of the page
+Quote Post
SmokAnalog
post 10.03.2018, 01:29:22
Post #26





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Zniknąłem jak dostałem jakąś naukę? Nie wiem co bierzesz, ale bierz połowę. Ja zawsze na tym forum bywałem w kratkę jakbyś nie zauważył. Mówisz o moim temacie, gdzie kilka osób wypisywało kompletne idiotyzmy? Tam się czegoś nauczyłem? Aha.
Go to the top of the page
+Quote Post
trzczy
post 10.03.2018, 01:33:32
Post #27





Grupa: Zarejestrowani
Postów: 460
Pomógł: 49
Dołączył: 5.06.2011

Ostrzeżenie: (0%)
-----


W mych oczach potwierdziłeś, że masz zdolności głównie kokieteryjne i przeważnie uprawiasz gadulstwo. Pożytecznej wiedzy przynosisz na forum tyle, co kot napłakał. Weźmy np. ten temat. Pomogłem Koledze tutaj dwukrotnie, a ty zero. Ale postów nastukałeś masę.
Go to the top of the page
+Quote Post
b4rt3kk
post 10.03.2018, 01:35:20
Post #28





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Cytat(trzczy @ 10.03.2018, 01:22:17 ) *
Zniknąłeś na parę dni, jak dostałeś srogą naukę. Nie przeprosiłeś osób, które wcześniej potraktowałeś obcesowymi uwagami ad personam. Ten temat z curlem, crawlerem i file_get_contents.


Daj link do tematu/posta.


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
SmokAnalog
post 10.03.2018, 01:38:20
Post #29





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Raczej mu zaszkodziłeś niż pomogłeś, bo podałeś błędne rozwiązanie.

Link do tematu: http://forum.php.pl/index.php?act=findpost&pid=1228535
Go to the top of the page
+Quote Post
trzczy
post 10.03.2018, 01:48:56
Post #30





Grupa: Zarejestrowani
Postów: 460
Pomógł: 49
Dołączył: 5.06.2011

Ostrzeżenie: (0%)
-----


Moje rozwiązanie nawiązuje wprost do wymagań pytającego. A ty przypisujesz pytającemu jakieś inne intencje, mimo że on im literalnie zaprzecza. Domyślam się, że przeoczyłeś to, kiedy pytający czarno na białym napisał, że nie chodzi o teksty między tagami. Umiejętność przyznania się do błędu świadczy o klasie człowieka.
Go to the top of the page
+Quote Post
SmokAnalog
post 10.03.2018, 01:56:09
Post #31





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


No i właśnie nie miały być wyłapane, a Twój wzorzec je łapie. W tym problem. Jak będzie gdzieś w tekście, to mu to wywali. To jest poważny mankament i zaproszenie do zepsucia treści.
Go to the top of the page
+Quote Post
trzczy
post 10.03.2018, 02:16:39
Post #32





Grupa: Zarejestrowani
Postów: 460
Pomógł: 49
Dołączył: 5.06.2011

Ostrzeżenie: (0%)
-----


Różne są zadania w informatyce i sprowadzanie ich do kilku typowych stereotypów może przynieść szkodę. Pytający przyszedł z konkretnym problemem i uzyskał odpowiedź wedle swych potrzeb. Odpowiedź alternatywną możesz wstawić, na pewno nikt nie będzie jej krytykował, jak będzie działała.

A teraz coś czego nie lubię: powtarzać mą włąsną wypowiedź któryś raz, bo rozmówca ją wypiera. Otóż, pytający napisał, że między tagami nie ma żadnej treści. Znaczy to nic innego, jak to, że nie przewidziano <div>attr</div> ani nawet <div>kupka</div>
Go to the top of the page
+Quote Post
SmokAnalog
post 10.03.2018, 02:28:34
Post #33





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Nie rozumiem o co chodzi z tym sprowadzaniem do stereotypów. Zadanie jest jasne, tylko jak to często bywa, osoba pytająca nie uwzględnia wszystkich potencjalnych problemów w pytaniu. Taki urok zadawania pytań, że osoba odpowiadająca musi sama przemielić pytanie i spojrzeć na nie z lotu ptaka.

Jeżeli faktycznie jest sto procent pewności, że pewna sytuacja nie wystąpi, to można iść na pewne kompromisy, choć jest to już jazda na krawędzi, bo warunki wejściowe mogą się kiedyś zmienić. Nie chce mi się sprzeczać, tym bardziej że nie ma o co. Napisałem wyżej, że najlepiej byłoby poszukać parsera co nie zignoruje powtórzonych atrybutów. Takie zdanie podtrzymuję. Bez tego pozostają rozwiązania z błędami, które jednak mogą wystarczyć autorowi pytania, choć tego nie wiemy na pewno.

Nie sprzeczajmy się już. Dobranoc.
Go to the top of the page
+Quote Post
trzczy
post 10.03.2018, 05:06:56
Post #34





Grupa: Zarejestrowani
Postów: 460
Pomógł: 49
Dołączył: 5.06.2011

Ostrzeżenie: (0%)
-----


Cytat(SmokAnalog @ 10.03.2018, 02:28:34 ) *
Zadanie jest jasne, tylko jak to często bywa, osoba pytająca nie uwzględnia wszystkich potencjalnych problemów w pytaniu.

Problem w tym, że Ty jesteś oderwany od rzeczywistości.

Kilka razy w tym wątku pisałeś, że osoba zadająca pytanie nie uwzględnia przypadku, że słowo attr jest między tagami div.

Tymczasem mijasz się tu z prawdą, bo pytający napisał konkretnie, że nie przewiduje przypadku, że między tagami będzie cokolwiek. Jesteś odporny na fakty.

Są granice wmawiania pytającemu, że pyta on o coś innego niż mu się wydaje. I ja sporu nie skończę, dopóki nie cofniesz tego argumentu wyssanego z palca, że moja praca nie uwzględnia słowa attr między tagami.

Wykonałem poważną robotę i nie pozwolę, by ktoś podważał moje umiejętności przez wymyślanie fikcyjnych problemów.
Go to the top of the page
+Quote Post
Pyton_000
post 10.03.2018, 09:42:27
Post #35





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Możecie sobie prywatne żale wylewać gdzieś indziej?

Jest rozwiązanie problem, jest uwaga że nie wyłapuje wszystkiego. Autor sam sobie zdecyduje co z tymi informacjami zrobić.

Koniec. temat wyczerpany.
Go to the top of the page
+Quote Post
SmokAnalog
post 10.03.2018, 12:05:36
Post #36





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Trzczy - Twoja argumentacja jest cholernie amatorska. Tak robią kiepscy programiści, kiepscy lekarze, kiepscy prawnicy i w ogóle wszyscy kiepscy, że za rozwiązanie problemu uznają
usunięcie objawu wspomnianego przez "pacjenta".

- Boli mnie głowa, panie doktorze.
- Proszę wziąć lek przeciwbólowy.

Czasami takie podejście jest do zaakceptowania, jeśli chodzi o jednorazową akcję i sami sobie sprawdzimy ręcznie potem efekt, ale tutaj to jest już słabe. Owszem, autor mówi, że nie przewiduje takiej sytuacji. Ale to nie znaczy, że kod ma mu ZNISZCZYĆ treść w przypadku, gdy przez pomyłkę jednak taka sytuacja zajdzie. Czuję się jakbym mówił do ucznia na pierwszej lekcji programowania.

Wiem, że włożyłeś dużo pracy w ten wzorzec, no ale bywa i tak - czasem się mylimy w naszej pracy, jakkolwiek byśmy się nie napracowali. Przestań mnie obrażać za to, że ostrzegam osobę zadającą pytanie przed potencjalnym poważnym zagrożeniem idącym za Twoim rozwiązaniem. Twoje niechlujstwo i lenistwo nie jest godne podziwu.

Pyton - Gdyby kod "nie wyłapywał wszystkiego", to by nie było sporu. Problem polega na tym, że on wyłapuje zbyt dużo. Powiedzmy, że ta funkcjonalność została umieszczona w funkcji removeEmptyAttributes:

  1. $before = <<<HTML
  2. <!DOCTYPE html>
  3. <html lang="en">
  4. <head>
  5. <meta charset="utf-8">
  6. <title>Example</title>
  7. </head>
  8. <body>
  9. <div style="" style="color: orange;" style>
  10. Wow, her style is amazing!
  11. </div>
  12. </body>
  13. </html>
  14. HTML;
  15.  
  16. $after = removeEmptyAttributes('style', $before);


Kod kolegi trzczy owszem, wyrzuci atrybuty, ale przy okazji wywali słowo "style" z treści i nikt tego nie zauważy. Zostanie nam to:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <meta charset="utf-8">
  4. <title>Example</title>
  5. </head>
  6. <div style="color: orange;">
  7. Wow, her is amazing!
  8. </div>
  9. </body>
  10. </html>


Ten post edytował SmokAnalog 10.03.2018, 12:12:20
Go to the top of the page
+Quote Post
Strelok
post 10.03.2018, 12:47:26
Post #37





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 13.02.2018

Ostrzeżenie: (0%)
-----


Dziękuję za wszelkie sugestie. Zdaję sobie sprawę z zagrożeń wynikających z problemu wyłapywania zbyt dużej ilości wystąpień i zaznaczam, że owe wyrażenie jest mi potrzebne jedynie w celach edukacyjnych.
Wstępnie posiadam inne wyrażenie, które wyłapuje tylko otwarcie tagu HTML z zawartością.

W każdym razie, miałbym prośbę - czy istnieje możliwość modyfikacji poniższego regexa w taki sposób, aby nie wyłapywał atrybutów przypadkiem zawierających szukaną nazwę. Mam na myśli atrybuty z myślnikami, tj. attr-x x-attr.

Regex o którym mowa:
https://regex101.com/r/qZ7Slx/4

Nowy ciąg:
Z myślnikami:
  1. <img attr="" nonattr="" attr-x="" x-attr>
Go to the top of the page
+Quote Post
viking
post 10.03.2018, 13:11:58
Post #38





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Wrzuciłem do https://packagist.org/packages/electrolinux/phpquery. Bez problemu usuwa:

  1. pq('img')->removeAttr('attr');


Kod
<img src="/test-image_1.jpg" qwe="asd">
<img src="/test-image_1.jpg" qwe="asd">
<img src="/test-image_1.jpg" qwe="asd">
<img src="/test-image_1.jpg" qwe="asd">
<img src="/test-imagalte_1.jpg" qwe="asd">
<img src="/test-%20alt%20image_1.jpg" qwe="asd">
<img src="/test-image_1.jpg" asd=" q" qwe="asd">
<img nonattr="" attr-x="" x-attr>


--------------------
Go to the top of the page
+Quote Post
SmokAnalog
post 10.03.2018, 13:42:08
Post #39





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Przy okazji wywala też niepuste, a nie o to chodziło.
Go to the top of the page
+Quote Post
viking
post 10.03.2018, 13:57:44
Post #40





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Poprzez "puste" rozumiem także atrybuty attr zawierające między cudzysłowami białe znaki

Więc wszystko się zgadza. Chyba że był jakiś ogranicznik jeszcze pomiędzy waszym sporem.


--------------------
Go to the top of the page
+Quote Post

3 Stron V  < 1 2 3 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.04.2024 - 02:30