• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

[PHP] str_replace

Status
Not open for further replies.
Joined
Jun 29, 2010
Messages
151
Reaction score
7
Cześć, fikumiku.
Mam w kodzie już jedno str_replace zamieniające entery na <br />, a chciałbym dodać jeszcze jedno str_replace zamieniające linki na linki aktywne (klikalne) i nie wiem za bardzo jak połączyć te 2 str_replace'y...

Mam taki:
Code:
str_replace("\r\n", "<br />",$rev['comment'])
chcę połączyć z tym w jedną całość:
Code:
ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]","<a href=\"\\0\">\\0</a>", $text)

No, nie wiem jak to dokładnie opisać - chcę żeby oprócz zamiany enterów na <br />ki zamieniało również suche linki na aktywne (klikalne) :)

Proszę o pomoc :$
 
  • Like
Reactions: Qwe
PHP:
$text= preg_replace('/http://(.*?)/','<a href="http://${1}">http://${1}</a>',nl2br($text));
 
PHP:
preg_replace("/(http|https|ftp)(:\/\/[[:alnum:](.*?)%\&_=?\/\.-]+)/","<a href='\\1\\2'>\\1\\2</a>",$text);

#up https to też linki : )

#down
dodałem ftp ; )
 
Last edited:
PHP:
preg_replace("/(http|https)(:\/\/[[:alnum:](.*?)%\&_=?\/\.-]+)/","<a href='\\1\\2'>\\1\\2</a>",nl2br($text));

#up https to też linki : )

ojejku przepraszam... ale kolega up nie sprecyzowal... po za tym moze byc tez protokol ftp, wiec go uwzglednij i inne oczywiscie tez ;p
 
Trochę mnie nie zrozumieliście. Ja chcę mieć 2 replace'y w jednym!

Code:
$code = "http://otland.net/

jakis tekst zwykly

";

echo $code;
Mając coś takiego jak wyżej, echo $code; zwróci mi ten link w postaci CZYSTEGO TEKSTU, a nie jako odnośnik, tak? A te entery w ogóle nie zostaną uwzględnione i wyświetlone. I teraz chcę użyć do tego str_replace aby link zamieniło mi na link klikalny (odnośnik), a nie wyświetlało jako czysty tekst, a entery zamieniło na <br /> rozumiecie? :p
 
no tak to działa
PHP:
function linkujSUKO($text){
return preg_replace("/(http|https|ftp)(:\/\/[[:alnum:](.*?)%\&_=?\/\.-]+)/","<a href='\\1\\2'>\\1\\2</a>",nl2br($text));  
}

$code = "http://otland.net/

";

echo linkujSUKO($code);
 
Last edited:
@Qwe
Code:
preg_replace("/(http|https|ftp)(:\/\/[[:alnum:](.*?)%\&_=?\/\.-]+)/","<a href='\\1\\2'>\\1\\2</a>",$text);
Czy ten kod zamieni mi entery na <br />? Nie! Więc dlatego proszę o pomoc jak zrobić 2 replace'y w jednym (zmiana linków na klikalne + zmiana enter na <br />)
 
Okej, dzięki. Chyba będzie ok, ale jutro testne w razie czego i napiszę czy działa jak należy.

a jeszcze chciałem zapytać czym się różni

preg_replace
ereg_replace
str_replace

Da się zrobić, żeby to działało jak użyję str_replace?
Code:
<?php
$code = "http://otland.net/

cosik xd
";

$code = str_replace("/(http|https|ftp)(:\/\/[[:alnum:](.*?)%\&_=?\/\.-]+)/", "<a href=\"\\1\\2\" target=\"_blank\">\\1\\2</a>", nl2br($code));

echo $code;
?>
^ bo tak nie działa, tylko z preg_replace, a ja koniecznie chcę str_replace!
 
Last edited by a moderator:
preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )
Searches subject for matches to pattern and replaces them with replacement.

ereg_replace ( string $pattern , string $replacement , string $string )
This function scans string for matches to pattern, then replaces the matched text with replacement.

str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )
This function returns a string or an array with all occurrences of search in subject replaced with the given replace value.

Takie trudne do zrozumienia chyba nie jest ;f
 
Bo mam takie coś:
Code:
<td class=\"grey\">".($search ? $main->highlight(str_replace("\r\n", "<br />",$rev['comment']), $searchstr) : str_replace("\r\n", "<br />",$rev['comment']))."</td>
I jak
Code:
str_replace("\r\n", "<br />",$rev['comment'])
zamienię na
Code:
preg_replace("/(http|https|ftp)(:\/\/[[:alnum:](.*?)%\&_=?\/\.-]+)/", "<a href=\"\\1\\2\" target=\"_blank\">\\1\\2</a>", nl2br($code))
aby było tak
Code:
<td class=\"grey\">".($search ? $main->highlight(preg_replace("/(http|https|ftp)(:\/\/[[:alnum:](.*?)%\&_=?\/\.-]+)/", "<a href=\"\\1\\2\" target=\"_blank\">\\1\\2</a>", nl2br($code)), $searchstr) : preg_replace("/(http|https|ftp)(:\/\/[[:alnum:](.*?)%\&_=?\/\.-]+)/", "<a href=\"\\1\\2\" target=\"_blank\">\\1\\2</a>", nl2br($code)))."</td>
To wtedy w ogóle nie działa :( Jak zrobić, żeby to było dobrze i działało tak jak chcę?

Tyryryry, bump ^

#EDIT
Jestem debilem. Zapomniałem zamienić $code na $rev['comment']. Teraz już chyba powinno działać.

Łamigłówka rozwiązana. Proszę o zamknięcie wątku.
 
Last edited by a moderator:
Status
Not open for further replies.
Back
Top