Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> handyHtml, spraw aby twoj kod html byl poprawny ;)
SHiP
post 25.07.2007, 18:39:56
Post #1





Grupa: Zarejestrowani
Postów: 697
Pomógł: 47
Dołączył: 19.12.2003
Skąd: Lublin

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


Dzisiaj mam do zaprazentowania taką mini klasę, która naprawia "zepsuty" kod html. Dopisuje zamkniecia dla niezamknietych znacznikow, filtruje nazwy znacznikow i parametrow, zmienia wielkosc liter itd.

Paczka do pobrania: http://srodek.info/files/handyhtml-0.7.tar.gz
Live demo: http://srodek.info/examples/handyhtml/livedemo.php

Obsługa dosyc prosta
  1. <?php
  2. // załączamy biblioteke
  3. require 'handyhtml.class.php';
  4.  
  5. // tutaj jakis nasz kod html
  6. $code='<b>bbb<i>bibibibi</b>iii</i>';
  7.  
  8. // ktory przekazujemy do konstruktora
  9. $html = new handyHtml($code);
  10.  
  11. // wywolujemy funkcje parse() ktora zwraca poprawiony kod
  12. echo $html -> parse();
  13.  
  14. // efekt: <b>bbb<i>bibibibi</i></b>iii
  15. ?>


Gdzie czegoś takiego używac? No cóż zastosowań jest wiele. W moim przypadku oczyszczam w ten sposob kod jaki generuje moj edytor WYSIWYG. Również jezeli obcinam początek artykułu i niechcący obetnę np. znacznik <a> w połowie to handyHtml to łatnie naprawi winksmiley.jpg.

Czekam na komentarze winksmiley.jpg. Jeśli biblioteka stanie się popularna postaram się dopisać kilka dodatkowych bajerow np. sprawdzanie czy przypadkiem znacznik będący blokiem nie znajduje sie w znaczniku który blokiem nie jest itp.


--------------------
Warsztat: Kubuntu, PhpStorm, Opera
Go to the top of the page
+Quote Post
phpion
post 25.07.2007, 18:59:41
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Pomysł dobry, z pewnością przydatmy ale wysypuje się np. na:

i wypisuje po prostu:
  1. Edek

Ale gdyby uwzględnić wszystkie znaczniki to do oczyszczania kodu generowanego przez wysiwyg soft idealny!
Go to the top of the page
+Quote Post
SHiP
post 25.07.2007, 19:13:17
Post #3





Grupa: Zarejestrowani
Postów: 697
Pomógł: 47
Dołączył: 19.12.2003
Skąd: Lublin

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


Wlasnie zapomnialem wspomnieć o konfiguracji winksmiley.jpg
W klasie mamy trzy tablice:
  1. <?php
  2. // dozwolone znaczniki
  3. public $allowedTags = Array('b','i','abbr','img','hr','br','code','object','param','span','div','dl','dt','dd','ul','li','ol','a','sub','sup','p','strong','blockquote','pre','h1','h2','h3','h4','h5','h6','h7');
  4. // dozwolone parametry
  5. public $allowedParams = Array('title','style','id','class','href','src','alt','name','value','compact');
  6. // znaczniki wymuszajacy krotki zapis (tj. zamyka sam siebie)
  7. public $forceShortForm = Array('br', 'hr');
  8. ?>


Wytarczy dopisac odpowiednie nazwy znacznikow i bedzie dzialac...


--------------------
Warsztat: Kubuntu, PhpStorm, Opera
Go to the top of the page
+Quote Post
phpion
post 25.07.2007, 19:16:45
Post #4





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Ok, ale czy skrypt skapuje, że coś jest nie tak np. w takim kodzie:
  1. <b src="plik.jpg" value="Edek" />

Wiem, że pewnie przeginam smile.gif ale pytam z ciekawości.
Go to the top of the page
+Quote Post
SHiP
post 25.07.2007, 19:20:26
Post #5





Grupa: Zarejestrowani
Postów: 697
Pomógł: 47
Dołączył: 19.12.2003
Skąd: Lublin

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


Nie smile.gif Dzięki za pomysł. W przyszłej wersji raczej to bedzie. W końcu wystarzczy stworzyc liste parametrow specjalnych dla danych znacznikow...


--------------------
Warsztat: Kubuntu, PhpStorm, Opera
Go to the top of the page
+Quote Post
Kreton
post 25.07.2007, 19:56:32
Post #6





Grupa: Zarejestrowani
Postów: 345
Pomógł: 3
Dołączył: 20.02.2005

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


Linki nie działają ?
Go to the top of the page
+Quote Post
SHiP
post 25.07.2007, 19:59:31
Post #7





Grupa: Zarejestrowani
Postów: 697
Pomógł: 47
Dołączył: 19.12.2003
Skąd: Lublin

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


Hmm zmienilem serwer. DNSy szaleją(juz prawie tydzien o.O)

Paczka do pobrania: http://srodek.firmybudowlane.org/files/handyhtml-0.7.tar.gz
Live demo: http://srodek.firmybudowlane.org/examples/...ml/livedemo.php


--------------------
Warsztat: Kubuntu, PhpStorm, Opera
Go to the top of the page
+Quote Post
Turgon
post 26.07.2007, 09:36:42
Post #8





Grupa: Zarejestrowani
Postów: 800
Pomógł: 0
Dołączył: 26.11.2005
Skąd: Nowy Sącz

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


SHiP, skrypt głąbieje gdy mu podam np.
  1. <a href="duopa" amamamam</a

albo robi cuda z:
  1. <a href="duopa"> mamama</a

  1. <a href="duopa"> mamama </a</a>


--------------------
Jah Music Is On My Mind !
Go to the top of the page
+Quote Post
Seth
post 27.07.2007, 20:57:23
Post #9





Grupa: Przyjaciele php.pl
Postów: 2 335
Pomógł: 6
Dołączył: 7.03.2002

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


Fajne ale... tidy" title="Zobacz w manualu PHP" target="_manual
Go to the top of the page
+Quote Post
mike
post 28.07.2007, 08:47:59
Post #10





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Echh, takie produkty to wynik nieznajomości języka, w którym się pisze.
Niby fajne, ale z powodu podanego przez ~Setha niemal całkowicie bezużyteczne.
Go to the top of the page
+Quote Post
vieri_pl
post 29.07.2007, 14:46:43
Post #11





Grupa: Zarejestrowani
Postów: 406
Pomógł: 9
Dołączył: 24.07.2005
Skąd: Bydgoszcz

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


Hmmm, ale w sumie jak Bastion dawał swój system templat`ów to również były takie komentarze ;-] nic nie jest idealne, a ShiP usiłuję zrobić coś podobnego, lecz bardziej funkcjonalnego, sprawnego itd. No przecież to chyba możliwe? smile.gif
Go to the top of the page
+Quote Post
SHiP
post 29.07.2007, 14:56:49
Post #12





Grupa: Zarejestrowani
Postów: 697
Pomógł: 47
Dołączył: 19.12.2003
Skąd: Lublin

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


Widac obaj z Bastionem nie czytamy manuala winksmiley.jpg. W każdym bądz razie nie testowałem jeszcze tidy. Jesli naprawdę sprawdza popraność znacznikow pod wzgledem blok w nie-bloku(= !valid xhtml strict) to nie ma sensu tego dalej ciągnąć. Chociaż imho dla zwyklego zielonego użytkownika wpisanie 2 funkcji bedzie prostsze niz bawienie sie w czytanie manuala.

Trzeba zrobić testy szybkosci w ab2 ale to w wolnej chwili teraz mam wazniejsze sprawy na glowie winksmiley.jpg

Ten post edytował SHiP 29.07.2007, 15:17:21


--------------------
Warsztat: Kubuntu, PhpStorm, Opera
Go to the top of the page
+Quote Post
toolmaniak
post 31.07.2007, 15:02:01
Post #13





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 29.05.2006
Skąd: /dev/null

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


Mnie się osobiście podoba, zarówno sam pomysł jak i wykonanie, i nie ma co się zrażać mnogościa opcji takich projektów jak Tidy, bo gdyby tak patrzeć, to chyba nie było by juz tak naprawdę nic do programowania bo niemal wszystko już gdzieś tam istnieje. Ale generalnie jest fajnie, z kodów które mu podałem ładnie wyrzucał niedomknięte tagi, no i zgadzam się również z vieri_pl bo nic nie jest tak do końca idealne, weźmy chciażby W3C validator i wklepmy taki kod do sprawdzenia

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <Meta HTTP-EQUIV="Content-Type" Content="text/html; charset=iso-8859-2;">
  3. <title>test</title>
  4. <script language="javascript" type="text/javascript">
  5. document.write('<a href="http://www.google.pl:80">google</a>');
  6. </head>


a bedzie się pluł, że znacznik
Kod
<a
nie został otworzony a próbujemy go zamknąć. Tak więc brawa ode mnie, i trzymam kciuki za rozwój. winksmiley.jpg
Go to the top of the page
+Quote Post

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: 24.06.2025 - 03:56