![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 19.02.2004 Skąd: zalibórz Ostrzeżenie: (0%) ![]() ![]() |
Witam..
Z gory blagam o wybaczenie - to moj debiut na php.pl ![]() posiadam takie cos: [php:1:25b901fd14]<?php $string='fs20'; ?>[/php:1:25b901fd14] musze zamienic wszystko poza liczba czyli np: 'fs' ==> '<font size=' a po '20' ma byc '<'; Pewnie czebaby na preg_replace z tym, ze mam klopoty z tymi nieszczesnymi wyrazeniami... ![]() mam nadzieje, ze w miare jasno sie wyrazilem. nie wiedomo jak dluga jest liczba po fs ( moze miec 1, 2, 3 lub 4 znaki). Nie wiadomo co moze byc po tel liczbie ( spacja, albo inny tag, albo nawet taki sam oddzielony spacją). Uff.. z gory dziekuje..... -------------------- Niektórych rzeczy nie można ująć w inny sposób jak tak, czy inaczej....
|
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 91 Pomógł: 0 Dołączył: 19.02.2004 Skąd: Piaseczno Ostrzeżenie: (0%) ![]() ![]() |
[php:1:14e0be72c1]<?php
$string='fs20'; //twoj poczatkowy 'znacznik' $value=substr($string, 3); /*tak mozesz odczytac wartosc przekazywana przez ten 'znacznik' i potem wstawic ja do dowolnego stringa*/ $tag = substr($string, 1,2); //tak dsotajesz sam kod 'taga' (czyli w tym wypadk 'fs' /*teraz wystarczy zrobic switacha ktory w zaleznosci od wartosc $tag genereuje odpowiedni znacznik html wykorzystujac wartosc $value zamiast switcha mozesz tez zrobic tablice z tagami*/ $tags_list['fs'] ="<font size='"; //i potem msaz cos takiego: $html = $tags_list[$tag].$value."'>"; ?>[/php:1:14e0be72c1] najlepiej zrób sobie funkcje z nagłowkiem typu function Transorm($tag) { ... return $html; } ps. zamiast atrybutów htmlowskich typu font itd staraj sie używac css:) polecam tez lekture dokumentacji na http://php.net ![]() aha poczególne tagi ze stringa który zawiera ich wiele mozesz otrzymac za pomoca explode - przeycztaj dokumentacje: http://pl.php.net/manual/en/function.explode.php |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 19.02.2004 Skąd: zalibórz Ostrzeżenie: (0%) ![]() ![]() |
Ano dziala jak mi sie wydaje calkiem dobrze
![]() Robie parser do RTF'a, bo nie chce pisac mi sie CMS'a. Lenia jakiegos podlapalem.... ![]() Dzieki i pozdrawiam. -------------------- Niektórych rzeczy nie można ująć w inny sposób jak tak, czy inaczej....
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 19.02.2004 Skąd: zalibórz Ostrzeżenie: (0%) ![]() ![]() |
No i sie pospieszylem za bardzo z ta radoscia... bo to dziala oki, ale kiedy mam taga odseparowanego, ale on przewaznie jest sobie w postaci:
costamcostamfs20znowu costami costamfs40 siala baba mak O! I teraz chce je podmienic odpowiednio na <font size="20"> i <font size="40"> No mam nadzieje, ze rozwialem wszelakie watpliwosci ![]() Pozdrowka dzieki z gory za pomoc..... -------------------- Niektórych rzeczy nie można ująć w inny sposób jak tak, czy inaczej....
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 91 Pomógł: 0 Dołączył: 19.02.2004 Skąd: Piaseczno Ostrzeżenie: (0%) ![]() ![]() |
tak jak napisalem powiedzmy ze masz juz funkcje:)
[php:1:47dc5a3606]<?php $tags_list['fs'] ="<font size='"; /*tutaj inicjalizujesz sobie tablice zawierajaca liste znacznikow i to na co chesz je zamienic. Lepiej zrobic to poza funkcja. W ten spoob tablica bedzie inicjalizowana tylko raz a nie za kazdym wywołaniem funkcji:)*/ function Transform($tag,$tags_list) { $value=substr($string, 3); $tag = substr($string, 1,2); $html = $tags_list[$tag].$value."'>"; return $html; } /*Teraz wystarczy podzielic twoj string zawierajacy wiele tagów na poszczególne znaczniki i dla kazdego z nich odpalic fucnkje. Mozesz to zrobic za pomoca expolde i petli while. Moge Ci napisac jak to ma wygladac tylko podaj mi prosze jakis przykladowy ciag zawierajacy wiele znacznikow:) mozliwe ze bedzie to tak: zalozmy ze kazdy znacznik jest odseparowany od reszty przez '/' i ze nasz string jest zapisany w zmiennej $stirng*/ $rs_tags = explode("/", $string); $i=0; while( isset($rs_tasg[$i])) { $tag = $rs_tags[$i]; $temp = explode(" ", $tag);//pozbywasz sie tego co jest po wartosci liczbowej $tag = $temp[0]; $htmlTags[$i] = Transform($tag); $i++; } //otrzymujesz tablice htmlTags ktora zawiera znaczniki htmlowksie ?>[/php:1:47dc5a3606] Ps nadal nie dokonca wiem o co chodzi:) Tzn czy w $string sa tylko znaczniki czy tam tez jest tresc? |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 19.02.2004 Skąd: zalibórz Ostrzeżenie: (0%) ![]() ![]() |
Uff. cholera chyba jakas zacme umyslu mam dzisiaj
![]() Jest prawie oki... troszke z tym walcze. Mecze wiec dalej ![]() Taki string prosto z pliku RTF: viewkind4uc1pardf0fs20 Sieje baba 667fs144 66akf1par mam te znaczniki ( tutaj aqrat fs20 i fs144 ). No i teraz poprostu zeby zamiast nich bylo to: <font size="20"> <font size="144"> czyli: viewkind4uc1pardf0<font size="20"> Sieje baba 667<font size="144"> 66akf1par Ufff. i tak chcialbym analogicznie do innych znacznikow. niech podmieni znacznik (kazdy zaczyna sie "", zostawia liczbe i zamika ta liczbe znakiem ">". Tu jest dla mnie najwiekszy problem, bo nie umiem zamknac cholerstwa po tej liczbie ![]() Dzieki za pomoc i pozdrawiam goraco. P.S. Wiem, ze maja myc style i ze 144 to absurd, ale nie o to mi chodzi teraz ![]() -------------------- Niektórych rzeczy nie można ująć w inny sposób jak tak, czy inaczej....
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 91 Pomógł: 0 Dołączył: 19.02.2004 Skąd: Piaseczno Ostrzeżenie: (0%) ![]() ![]() |
hmm jesli dobrze rozumieem:P
to cos takiego powinno byc tym czego szukasz: [php:1:cf599e9834]<?php /*deklarancja funkcji i tablicy ze znacznikami pozostaje bez zmian*/ $tags_list['fs'] ="<font size='"; //itd function Transform($tag,$tags_list) { $value=substr($string, 3); $tag = substr($string, 1,2); $html = $tags_list[$tag].$value."'>"; return $html; } // a teraz robimy to co ostanio z tym ze ekektu naszej pracy uzywamy do wymienienia $taga ze stringa na gotowy kod html $rs_tags = explode("/", $string); $i=0; while( isset($rs_tasg[$i])) { $tag = $rs_tags[$i]; $temp = explode(" ", $tag);//pozbywasz sie tego co jest po wartosci liczbowej $tag = $temp[0]; $string = str_replace($tag,Transform($tag),$string); } //zamiast while mozesz uzyc foreach ?>[/php:1:cf599e9834] powiedz ze o to chodzilo? ![]() |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 166 Pomógł: 0 Dołączył: 30.01.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
A może delikatnie szybciej?
[php:1:afbe373f51]<?php $string='przykładowy kodzik fs144do wyświetlenia na stronie... przydał by sie znacznik zamykający co ?'; $nowy=ereg_replace("[fs]+([0-9]{1,4})", "<font size='1'>", $string); echo $nowy; ?>[/php:1:afbe373f51] -------------------- |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 91 Pomógł: 0 Dołączył: 19.02.2004 Skąd: Piaseczno Ostrzeżenie: (0%) ![]() ![]() |
fakt.. duzo szybciej i ladniej:)
dzieki za zwrocenie uwagi. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 19.02.2004 Skąd: zalibórz Ostrzeżenie: (0%) ![]() ![]() |
Hej!
Wlasnie o to mi chodzilo ![]() Jednak czlek uczy sie cale zycie ![]() Dzieki za pomoc ![]() -------------------- Niektórych rzeczy nie można ująć w inny sposób jak tak, czy inaczej....
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 09:56 |