Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> text2link
Project
post 16.05.2003, 13:13:03
Post #1





Grupa: Zarejestrowani
Postów: 86
Pomógł: 0
Dołączył: 2.04.2003
Skąd: Poznań

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


Witam!
jakis czas temu pisalem skrypt link2text i z perspektywy czasu to bylo baaardzo latwe ale teraz pisze cos w druga strone ale nie za bardzo mam pomysl na szybki algorytm...
sad.gif
Problem polega na zamianie textu w postaci http://www.test.pl lub www.test.pl na aktywne linki w postaci:
<a href=http://www.test.pl>www.test.pl</a>
ktos ma jakis pomysl jak to zrobic w jak najkrotszym czasie??

Z gory dziekuje za odpowiedzi!

POZDRAWIAM
Go to the top of the page
+Quote Post
kurtz
post 16.05.2003, 13:17:32
Post #2





Grupa: Przyjaciele php.pl
Postów: 786
Pomógł: 0
Dołączył: 18.03.2002
Skąd: Wroclaw/Warszawa

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


Cytat
Witam!
jakis czas temu pisalem skrypt link2text i z perspektywy czasu to bylo baaardzo latwe ale teraz pisze cos w druga strone ale nie za bardzo mam pomysl na szybki algorytm...
:(
Problem polega na zamianie textu w postaci http://www.test.pl lub www.test.pl na aktywne linki w postaci:
<a href=http://www.test.pl>www.test.pl</a>
ktos ma jakis pomysl jak to zrobic w jak najkrotszym czasie??
zajrzec do zrodla tego forum - szybciej chyba sie nie da ;)


--------------------
.. make web your home ..
Go to the top of the page
+Quote Post
Project
post 16.05.2003, 13:28:25
Post #3





Grupa: Zarejestrowani
Postów: 86
Pomógł: 0
Dołączył: 2.04.2003
Skąd: Poznań

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


A z jakiej skladni korzysta to forum??
:?:
kod zrodlowy phpbb to ponad 600 kilo z tego co widze!
jest gdzie szukac...
sad.gif
Mozesz cos konkretniej... :?:
Go to the top of the page
+Quote Post
kurtz
post 16.05.2003, 13:30:25
Post #4





Grupa: Przyjaciele php.pl
Postów: 786
Pomógł: 0
Dołączył: 18.03.2002
Skąd: Wroclaw/Warszawa

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


Cytat
kod zrodlowy phpbb to ponad 600 kilo z tego co widze!
jest gdzie szukac...
wiec nie marudz tylko do boju.. na pewno musisz suzkac plikow zawierajacych 'www' i pewnie tez 'http'. teraz sprobuj ty. to chyab nie trudne ;)

pozdrawiam


--------------------
.. make web your home ..
Go to the top of the page
+Quote Post
Project
post 16.05.2003, 13:37:09
Post #5





Grupa: Zarejestrowani
Postów: 86
Pomógł: 0
Dołączył: 2.04.2003
Skąd: Poznań

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


Jak mam byc szczery to nie jestes ani zbyt pomocny ani mily!!!
bardzo mnie to martwi.
sad.gif
Jezeli nie masz do zaprezentowania jakiegos konkretnego pomyslu to poprostu nie zabieraj udzialu w dyskusji!!!
To ze przy nicku masz dopisane moderator nie upowaznia Cie do traktowania reszty ludzi z gory!

PS co do szukania w godzi phpbb to tez nie takie latwe jak Ci sie wydaje!!!
postaraj sie cos tam znalezc a penie zajmie Ci to spory kawalek czasu!!!
Go to the top of the page
+Quote Post
Jabol
post 16.05.2003, 13:41:18
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

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


[php:1:76348dfd73]<?php
$text=preg_replace("#+://)([w-]+.([w-]+.)*[w]+(:[0-9]+)?(/[^ "nrt<]*?)?)](.*?)#si", '<a href="1://2">3</a>', $text);
?>[/php:1:76348dfd73]to będzie jakoś tak, nie jestem tylko pewien, czy tych 3 nie powinno się wziąść w nawiasy...

Ps. znalazłem i przerobiłem w phpbb (przerobiłem- więc może nie działać!).
Go to the top of the page
+Quote Post
Project
post 16.05.2003, 13:48:03
Post #7





Grupa: Zarejestrowani
Postów: 86
Pomógł: 0
Dołączył: 2.04.2003
Skąd: Poznań

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


ok!
dzieki
za przykladowy kod i wlasnie sobie uswiadmoilem blad w moim mysleniu...
moja pierwsza mysla bylo sprawdzanie wystapien http w danym ciagu i zakladanie takiej petelki ktora kazde znalezione wyrazenie pasujace do wzorca zamieni na link... a przeciez istnieja funkcje takie jak preg_replace
jakas zacma mnie chwycila
;(
no coz bywa i tak

PS a kurzt kazal mi szukac tam http i www smile.gif
to bym szukal i szukal
he he
co za koles...
Go to the top of the page
+Quote Post
kurtz
post 16.05.2003, 13:55:16
Post #8





Grupa: Przyjaciele php.pl
Postów: 786
Pomógł: 0
Dołączył: 18.03.2002
Skąd: Wroclaw/Warszawa

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


Cytat
a kurzt kazal mi szukac tam http i www :)
to bym szukal i szukal
he he
co za koles...
praktyk. wytrenowalem juz kilku programistow ;p


--------------------
.. make web your home ..
Go to the top of the page
+Quote Post
kurtz
post 16.05.2003, 13:58:07
Post #9





Grupa: Przyjaciele php.pl
Postów: 786
Pomógł: 0
Dołączył: 18.03.2002
Skąd: Wroclaw/Warszawa

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


Cytat
Jak mam byc szczery to nie jestes ani zbyt pomocny ani mily!!!
bardzo mnie to martwi.

dlaczego? bo wole dac wedke a nie rybe?


Cytat
Jezeli nie masz do zaprezentowania jakiegos konkretnego pomyslu to poprostu nie zabieraj udzialu w dyskusji!!!
[..]
PS co do szukania w godzi phpbb to tez nie takie latwe jak Ci sie wydaje!!!
postaraj sie cos tam znalezc a penie zajmie Ci to spory kawalek czasu!!!
pomysl byl bardzo konkretny misiek. find + grep rozwiazaly go bardzo szybko ;)

i jak mysz mi swiadkiem nie staram sie patrzec z gory - ale wezme pod uwage twoje slowa.

pozdrawiam


--------------------
.. make web your home ..
Go to the top of the page
+Quote Post
Jabol
post 16.05.2003, 14:00:37
Post #10





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

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


a nie łatwiej było poszukać (jak ja) w pliku, który się nazywa "bb_code.php"...
Go to the top of the page
+Quote Post
Cod
post 16.05.2003, 14:22:58
Post #11





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 20.03.2003
Skąd: Warszawa

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


A ja zrobiłem przed chwilą własny skrypcik na to smile.gif. Tak żeby sprawdzić, czy umiem biggrin.gif.

[php:1:3408d7a0ac]<?php
if(isset($HTTP_POST_VARS["tekst"]))
{
$tekst=$HTTP_POST_VARS["tekst"];
$tekst=nl2br($tekst);
$wiersze=explode("n", $tekst);
$new="";
$znak=array(".", ",", "!", "?");
$end[0]="";
for($i=0;$i<count($wiersze);$i++)
{
$tablica=explode(" ", $wiersze[$i]);
for($j=0;$j<count($tablica);$j++)
{
if(substr($tablica[$j], 0, 7)=="http://")
{
$end[$j]="";
for($k=0;$k<count($znak);$k++)
{
if(substr($tablica[$j], strlen($tablica[$j])-1, 1)==$znak[$k])
{
$tablica[$j]=substr($tablica[$j], 0, strlen($tablica[$j])-1);
$end[$j]=$znak[$k];
}
}
$tablica[$j]="<a href="".$tablica[$j]."" target=_blank>".$tablica[$j]."</a>".$end[$j];
}
elseif(ereg("@", $tablica[$j])==TRUE)
{
$end[$j]="";
for($k=0;$k<count($znak);$k++)
{
if(substr($tablica[$j], strlen($tablica[$j])-1, 1)==$znak[$k])
{
$tablica[$j]=substr($tablica[$j], 0, strlen($tablica[$j])-1);
$end[$j]=$znak[$k];
}
}
$tablica[$j]="<a href="mailto:".$tablica[$j]."">".$tablica[$j]."</a>".$end[$j];
}
$new=$new." ".$tablica[$j];
}
}
echo "Tekst wpisany przez Ciebie:<br><br>$tekst<br><br>Tekst wygenerowany przez skrypt:<br><br>$new";
}
else
{
echo "<form method=post action=zmiana.php>Napisz jakis tekst zawierajacy adresy stron www i emaile i kliknij 'OK'.<br><br><textarea name=tekst cols=60 rows=10></textarea><br><br><input type=submit value=OK></form>";
}
?>[/php:1:3408d7a0ac]
Jak to działa, możecie zobaczyć pod tym linkiem: http://cod.home.staszic.waw.pl/testy/zmiana.php. Skrypt szuka ciągu "http://" i zamienia na hyperlink. Znajduje też małpę (@) i daje klikalny odnośnik z poleceniem "mailto:". Skrypt radzi sobie z linkami, po których jest kropka, przecinek, wykrzyknik lub znak zapytania. Przetestujcie sobie i powiedzcie co o tym sądzicie smile.gif.


--------------------
Cod | codslfc@o2.pl | gg#1405724 | www.footbag.p2.pl
Go to the top of the page
+Quote Post
Jabol
post 16.05.2003, 14:27:05
Post #12





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

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


nie radzi sobie z user:haslo@test.pl/ podaje mailto, a ja chciałem, żeby podał zwykłu link, który miałaby zinterpretować przeglądarka (domyślnie, http).
Go to the top of the page
+Quote Post
Cod
post 16.05.2003, 14:33:24
Post #13





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 20.03.2003
Skąd: Warszawa

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


No rzeczywiście sad.gif. Przecież może być "ftp://", itp. Nie pomyślałem o tym... Ale gdyby ktoś chciał prosty skrypcik do konwersji samych "http://" i adresów mejlowych, bierzcie ode mnie! biggrin.gif

A tak BTW: Mógłby ktoś wytłumaczyć to?

[php:1:a520a528a7]<?php
$text=preg_replace("#+://)([w-]+.([w-]+.)*[w]+(:[0-9]+)?(/[^ "nrt<]*?)?)](.*?)#si", '<a href="1://2">3</a>', $text);
?>[/php:1:a520a528a7]


--------------------
Cod | codslfc@o2.pl | gg#1405724 | www.footbag.p2.pl
Go to the top of the page
+Quote Post
Project
post 16.05.2003, 14:51:24
Post #14





Grupa: Zarejestrowani
Postów: 86
Pomógł: 0
Dołączył: 2.04.2003
Skąd: Poznań

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


troche inaczej (zywcem z manuala)
smile.gif
Kod
$atext = preg_replace("/([w]+://[w-?&;#~=./@]+[w/])/i","<A TARGET="_blank" HREF="$1" class=l>$1</A>", $atext);

tak na wypadek jak ktos by tego szukal w przyszlosci
smile.gif

PS niestety nie obsluguje tez postaci user:pass@host.net
sad.gif
Go to the top of the page
+Quote Post
Cod
post 16.05.2003, 14:58:26
Post #15





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 20.03.2003
Skąd: Warszawa

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


Bomba! To ja się tyle męczyłem (i tak jeszcze nie zawsze dobrze działało), a tu się okazuje, że wszystko robi jedna funkcja!!! biggrin.gif A może ktoś chciałby wytłumaczyć jeszcze tylko, jak to dokładnie działa?


--------------------
Cod | codslfc@o2.pl | gg#1405724 | www.footbag.p2.pl
Go to the top of the page
+Quote Post
DeyV
post 16.05.2003, 17:41:59
Post #16





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




Chyba nie ma innego wyjścia, jak wziąść manual, i postudiować dział o wyrażeniach regularnych. Bardzo pouczające, a bez tego ani rusz. Jak samodzielnie nie spróbujesz i nie przetestujesz, to tego nie załapiesz sad.gif
Dużo może też wnieść to forum, poszukaj w.r., w r i wyrażenia ...


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
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: 21.06.2025 - 21:20