Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Trudne pytanie, ominiecie tagow, hmm a moze latwe
pieto
post 17.12.2007, 21:44:01
Post #1





Grupa: Zarejestrowani
Postów: 227
Pomógł: 1
Dołączył: 12.05.2002
Skąd: gdańsk

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


Witam,

mam takie kodzik

  1. <?php
  2. $content  = explode(' ',$txt);
  3. $content_count = count($content);
  4.  
  5. for($i=0;$i<$content_count ;$i++) {
  6.  
  7. if(strlen($content[$i])>3) {
  8. $pre_content[$i] = sprawdz($content[$i]);
  9. }
  10.  
  11. else {
  12. $pre_content[$i] = $content[$i];
  13. }
  14.  
  15. }
  16. ?>

rozbija mi on tekst na poszczegolne frazy, dalej funkcja sprawdz sprawdzam czy mam w bazie rekord z dana fraza i tak podlikowuje sobie artykuly.
Chcialby do tego ograniczyc aby zostawil w spokoju tagi html'a bo niszczy mi kod sad.gif

Ktos ma jakas koncepcje ?
Powód edycji: Dodałem bbcode. @drPayton


--------------------
Materiały i Wypracowania znajdziesz na zgapa.pl i
Encyklopedii Zgapedia
Jedyny przedawkowany portal motoryzacyjny to autoholik.pl
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 14)
b_chmura
post 17.12.2007, 22:35:14
Post #2





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

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


poczytaj o strip_tags" title="Zobacz w manualu PHP" target="_manual
Go to the top of the page
+Quote Post
pieto
post 18.12.2007, 11:07:18
Post #3





Grupa: Zarejestrowani
Postów: 227
Pomógł: 1
Dołączył: 12.05.2002
Skąd: gdańsk

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


Chyba nie zrozumiałeś mojego pytania, lub kodu,

Nie chodzi mi o pozabawienie artykulu otagowania,
tylko aby same tagi nie zostały podlinkowane (nie zostala dla nich wykonana funkcja sprawdz() )

czyli innymi słowy ma to być parser treści a nie całego kodu,

niebardzo widze tez sposobu na pojechanie regularnymi ..


--------------------
Materiały i Wypracowania znajdziesz na zgapa.pl i
Encyklopedii Zgapedia
Jedyny przedawkowany portal motoryzacyjny to autoholik.pl
Go to the top of the page
+Quote Post
drPayton
post 18.12.2007, 12:23:01
Post #4





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

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


  1. <?php
  2. $pre_content[$i] = sprawdz(strip_tags($content[$i]));
  3. ?>

?

Pozdrawiam!
Go to the top of the page
+Quote Post
pieto
post 18.12.2007, 13:27:19
Post #5





Grupa: Zarejestrowani
Postów: 227
Pomógł: 1
Dołączył: 12.05.2002
Skąd: gdańsk

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


nie,

zauwaz ze w wyniku
$pre_content[$i] otrzymam string bez otagowania

w $pre_content[$i] powinien znalesc sie przerobiony kod z linkami do innych artykulow ale nie zawierajacych linkow w samych tagach


moze tak:

z bazy wyciągam artykul np :
  1. <div class="tekst"> <font style="font-size:12px">Sformatowany tekst html'em </font><div>


po przepuszeczniu przez funkcje daje mi:
  1. <div class="<a href="link">tekst</a>"> <font style="font-size:12px">Sformatowany <a href="link">tekst</a> html'em </font><div>


a prawidlowo powinien dawac:
  1. <div class="tekst"> <font style="font-size:12px">Sformatowany <a href="link">tekst</a> html'em </font><div>



czyli chodzi o ominiecie tagow tekstu przy sprawdzaniu


--------------------
Materiały i Wypracowania znajdziesz na zgapa.pl i
Encyklopedii Zgapedia
Jedyny przedawkowany portal motoryzacyjny to autoholik.pl
Go to the top of the page
+Quote Post
Nekro
post 18.12.2007, 14:18:54
Post #6





Grupa: Zarejestrowani
Postów: 36
Pomógł: 2
Dołączył: 3.01.2007
Skąd: Żory

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


Stworzy funkcję analizujaca czy "<" jest rozpoczeciem tagu HTML.
Jesli takowa zrobisz to potem wiadomo ze pierwsze wystapienie ">" jest zamknieciem tagu html.

Robie strip_tags na kopii orginalu.
Wyciagam z kopii wszystkie wyrazy z ciagu.
Robie liste wyrazow do podmiany.
Szukam wyrazow w orginalnej tresci.
Jesli znajde to szukam wystapienia tagow HTML a raczej ich pozycji otwarcia i zamkniecia w tekscie (str_pos).
Sprawdzam czy pozycja podanego wyrazu znajduje sie miedzy tymi wartosciami.
Jesli tak to nie podmieniam, jesli nie to podmieniam str_replace().

pisane na szybko weic moga byc jakies uchybienia smile.gif

pozdro


--------------------
Angielski dla specjalistów: www.anglobiznes.pl
Wydawnictwo językowe: www.eprofess.pl
Go to the top of the page
+Quote Post
pieto
post 18.12.2007, 14:38:37
Post #7





Grupa: Zarejestrowani
Postów: 227
Pomógł: 1
Dołączył: 12.05.2002
Skąd: gdańsk

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


Mysle ze nie wyjdzie kiedy będzie <tag><w tagu>tresc</w tagu><tag>

zrodzil mi sie pomysl na regularne ale nie jestem w tm dobry,
cos w stylu /<(.*/>(.*)\</\ i do pierwszego $1 podstawiaj czysty string a do drugiego $2 z funkcji,
jednak to tez wyrzuci sie gdy bedzie tag w tagu,

ktos potrfilby podpowiedziec jakby wygladalo takie wyrazenie ?

Ten post edytował pieto 18.12.2007, 14:39:20


--------------------
Materiały i Wypracowania znajdziesz na zgapa.pl i
Encyklopedii Zgapedia
Jedyny przedawkowany portal motoryzacyjny to autoholik.pl
Go to the top of the page
+Quote Post
Snowak
post 18.12.2007, 16:21:34
Post #8





Grupa: Zarejestrowani
Postów: 78
Pomógł: 2
Dołączył: 13.12.2007

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


Musisz po prostu napisać prosty parser HTMLa czy tam BBCodu, innego eleganckiego wyjścia nie ma.
Go to the top of the page
+Quote Post
in5ane
post 18.12.2007, 17:38:54
Post #9





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Z tego co rozumiem (czytając co drugie zdanie) to chcesz zrobić podstrony. Dodawanie/edycje podstron będziesz robił w edytorze wysywig i chcesz chyba zrobić stronnicowanie po danej ilości znaków. A więc nie tędy droga. Myślisz, że takie serwis jak wp.pl czy onet.pl czegoś takiego używają !? Phii... nigdy w życiu. Oni robią to tak, że jak chcą w danym miejscu mieć zrobioną kolejną podstronę to wpisują jakiś tag (np. jak używam [*ns*]). Pokaż Ci mały kodzik z użyciem tego tagu.

Użyję tutaj pager nospora. Będziesz musiał go pobrać z jego strony i umieścić w katalogu ze stroną (mówię tutaj o wersji pod php 4).
A oto kod:
  1. <?php
  2. require_once('Pager.class.php');
  3. //tekst do stronicowania
  4. $tekst = $row['tresc'];
  5. $ar = explode('[*ns*]',$tekst);
  6. $recordsCount = count($ar);
  7. $pager = new Pager('idPagera','article_id.php?id='.$id.'');
  8. $pager->SetTotalRecords($recordsCount);
  9. //na kazdej stronie po jednym kawalku
  10. $pager->SetRecordsPerPage(1);
  11. $pager->render(true);
  12. $pag = $pager->Render();
  13. $start = $pager->GetIndexRecordStart();
  14. ?>



P.S.: Jeżeli nie o to chodziło, trudno. To ja zmarnowałem takto 5 minut.
P.S.2: Jeżeli natomiast pomogłem liczę na przycisk "POMÓGŁ" pod moim postem.


--------------------
> > > Tworzenie stron < < <
Go to the top of the page
+Quote Post
pieto
post 18.12.2007, 18:37:26
Post #10





Grupa: Zarejestrowani
Postów: 227
Pomógł: 1
Dołączył: 12.05.2002
Skąd: gdańsk

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


nie, nie chodzi mi stronnicowanie,

mysle ze jasno wytlumayczylem o co mi biega, wiec jak przecztyasz reszte zdan powinienes zrozumiec winksmiley.jpg


--------------------
Materiały i Wypracowania znajdziesz na zgapa.pl i
Encyklopedii Zgapedia
Jedyny przedawkowany portal motoryzacyjny to autoholik.pl
Go to the top of the page
+Quote Post
in5ane
post 18.12.2007, 21:55:21
Post #11





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Cytat
Chcialby do tego ograniczyc aby zostawil w spokoju tagi html'a bo niszczy mi kod sad.gif

Masz taką fajną funkcję stip_tags oraz htmlspecialchars, chodzi o to, że powiedzmy, że masz coś takiego:
Kod
<p style="text-align:center;">elo elo, joł ziomalek, <strong>co tam porabiasz</strong>, idź do domu, nie mam czasu, pomagam koledze na forum, bo mu się coś jebie ze skryptem, bla bla bla bla....</p>
I masz to pod zmienną powiedzmy $tresc
I teraz żeby tagi były "ojszczane" to robisz:
  1. <?php
  2. $ok_tresc_strip_tags = strip_tags($tresc); // to ci całkowicie wymaże tagi html
  3. $ok_tresc_htmlspecialchars = htmlspecialchars($tresc); // to ci można najprościej powiedzieć skonwertuje tagi html do ich zamienników, nie wiem czy Ci to potrzebnie wp
    rowadziłem, ale może się przyda
  4. ?>


P.S.: Może teraz Ci trochę pomogłem.

Ten post edytował in5ane 18.12.2007, 21:55:38


--------------------
> > > Tworzenie stron < < <
Go to the top of the page
+Quote Post
b_chmura
post 18.12.2007, 22:20:16
Post #12





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

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


Cytat(in5ane @ 18.12.2007, 21:55:21 ) *
Masz taką fajną funkcję stip_tags oraz htmlspecialchars, chodzi o to, że powiedzmy, że masz coś takiego:
Kod
<p style="text-align:center;">elo elo, joł ziomalek, <strong>co tam porabiasz</strong>, idź do domu, nie mam czasu, pomagam koledze na forum, bo mu się coś jebie ze skryptem, bla bla bla bla....</p>
I masz to pod zmienną powiedzmy $tresc
I teraz żeby tagi były "ojszczane" to robisz:
  1. <?php
  2. $ok_tresc_strip_tags = strip_tags($tresc); // to ci całkowicie wymaże tagi html
  3. $ok_tresc_htmlspecialchars = htmlspecialchars($tresc); // to ci można najprościej powiedzieć skonwertuje tagi html do ich zamienników, ni
    e wiem czy Ci to potrzebnie wprowadziłem, ale może się przyda
  4. ?>


P.S.: Może teraz Ci trochę pomogłem.


skoro najpierw usunąłeś tagi to co później zamieniasz na znaki specjalne?...
poza tym autor tematu wyraźnie napisał ze to nie jest rozwiązaniem.

~pieto
Wiadomo ze w tekście nie możemy używać takich znaków specjalnych jak < i > dlatego w tekście są one unikalne i to właśnie między nimi jest kod html otaguj wszystko co znajduje sie między > i <
Kod
#>(.*?)<#si


Edit
Poczytaj także o preg_match_all" title="Zobacz w manualu PHP" target="_manual i preg_match" title="Zobacz w manualu PHP" target="_manual

Ten post edytował b_chmura 18.12.2007, 22:25:22
Go to the top of the page
+Quote Post
in5ane
post 19.12.2007, 13:13:48
Post #13





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Cytat
skoro najpierw usunąłeś tagi to co później zamieniasz na znaki specjalne?...


Napisałem:
Cytat
nie wiem czy Ci to potrzebnie wprowadziłem, ale może się przyda
Po prostu chciałem mu zademonstrować i tą funkcję.


--------------------
> > > Tworzenie stron < < <
Go to the top of the page
+Quote Post
MMX3
post 19.12.2007, 16:01:04
Post #14





Grupa: Zarejestrowani
Postów: 155
Pomógł: 9
Dołączył: 26.01.2004
Skąd: Poznań

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


po co prasować całego stringa...

DOM! jeżeli źródło jest na dziwach. To można sobie zrobić GetElementByID.... Szybkie proste przyjemne... Tak dane z naszej-klasy się ssie smile.gif bardzo ładnie tylko że powoli bo nasza klasa jest badziewna...


--------------------
Go to the top of the page
+Quote Post
pieto
post 19.12.2007, 16:09:32
Post #15





Grupa: Zarejestrowani
Postów: 227
Pomógł: 1
Dołączył: 12.05.2002
Skąd: gdańsk

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


blee DOM do bani,
z php parsowanie bedzie wykoanane raz i zapisane do cache,
jesli mam 100.000 artykulow i kazda fraza z kazdego wywolania artykulu miala by byc analizowana na zywca to mysle ze serwer dlugo nie pozyje


--------------------
Materiały i Wypracowania znajdziesz na zgapa.pl i
Encyklopedii Zgapedia
Jedyny przedawkowany portal motoryzacyjny to autoholik.pl
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: 31.07.2025 - 00:03