Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Odzielenie linków od emotek
armind
post
Post #1





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 15.11.2012

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


Witam mam skrypcik shoutboxsa oraz funkcje emotek i auto linku jak oddzielić link od emotki bo to wygląda straszliwie

podam przykłąd wpisze http:// - to z - :/ robi sie jeszcze emotka

Ten post edytował armind 24.01.2013, 15:13:07
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
djgarsi
post
Post #2





Grupa: Zarejestrowani
Postów: 459
Pomógł: 26
Dołączył: 1.06.2009

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


Jeśli zamieniasz exlodem to emotki zamieniaj dopiero po spacji czyli
Kod
{spacja}:D
zamieni na (IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
armind
post
Post #3





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 15.11.2012

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


Tak wywołuje:

".auto_link_text(emoty($row['msg']))."

Oto funckje ktore mam:

  1. function auto_link_text($text) {
  2. $pattern = '#\b(([\w-]+://?|www[.])[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|/)))#';
  3. return preg_replace_callback($pattern, 'auto_link_text_callback', $text);
  4. }
  5.  
  6. function auto_link_text_callback($matches) {
  7. $max_url_length = 50;
  8. $max_depth_if_over_length = 2;
  9. $ellipsis = '&hellip;';
  10.  
  11. $url_full = $matches[0];
  12. $url_short = '';
  13.  
  14. if (strlen($url_full) > $max_url_length) {
  15. $parts = parse_url($url_full);
  16. $url_short = $parts['scheme'] . '://' . preg_replace('/^www\./', '', $parts['host']) . '/';
  17.  
  18. $path_components = explode('/', trim($parts['path'], '/'));
  19. foreach ($path_components as $dir) {
  20. $url_string_components[] = $dir . '/';
  21. }
  22.  
  23. if (!empty($parts['query'])) {
  24. $url_string_components[] = '?' . $parts['query'];
  25. }
  26.  
  27. if (!empty($parts['fragment'])) {
  28. $url_string_components[] = '#' . $parts['fragment'];
  29. }
  30.  
  31. for ($k = 0; $k < count($url_string_components); $k++) {
  32. $curr_component = $url_string_components[$k];
  33. if ($k >= $max_depth_if_over_length || strlen($url_short) + strlen($curr_component) > $max_url_length) {
  34. if ($k == 0 && strlen($url_short) < $max_url_length) {
  35. // Always show a portion of first directory
  36. $url_short .= substr($curr_component, 0, $max_url_length - strlen($url_short));
  37. }
  38. $url_short .= $ellipsis;
  39. break;
  40. }
  41. $url_short .= $curr_component;
  42. }
  43.  
  44. } else {
  45. $url_short = $url_full;
  46. }
  47.  
  48. return "<a rel=\"nofollow\" href=\"$url_full\" target=\"_blank\">$url_short</a>";
  49. }
  50.  
  51. function emoty($content) {
  52. $content = str_replace("<wesoly>", "<img src=\"emoty/usmiech.gif\" style=\"border:0px;\" />",$content);
  53. $content = str_replace(":-)", "<img src=\"emoty/usmiech2.gif\" style=\"border:0px;\" />",$content);
  54. $content = str_replace(":)", "<img src=\"emoty/usmiech2.gif\" style=\"border:0px;\" />",$content);
  55. $content = str_replace(":-))", "<img src=\"emoty/usmiech2.gif\" style=\"border:0px;\" />",$content);
  56. return $content;
  57. }


Musiałem skrócic - dałem mniej linijek emotek (IMG:style_emoticons/default/biggrin.gif)

Ten post edytował armind 24.01.2013, 16:10:47
Go to the top of the page
+Quote Post
Raven1122
post
Post #4





Grupa: Zarejestrowani
Postów: 369
Pomógł: 2
Dołączył: 1.11.2010

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


W str_replace, przed kazda emotka daj spacje. Wtedy nie bedzie ci zamienialo tego w ciągach znaków.

Typu
http:// -> http://

Jakiś tekst (IMG:style_emoticons/default/biggrin.gif) -> Będzie emotka (IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
armind
post
Post #5





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 15.11.2012

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


Nietety ale nie pomogło pomogło ale jak ktos wpisze minke jako pierwsze to nie wyswietla np wpis wyglada tak:

;/ (IMG:style_emoticons/default/biggrin.gif) - to tej 1 minki nie wyswietla

Czy ktos z łąski swojej moze mi pomóc?? sram sie z tym....jak nie potraficie pomóc to po co robicie te forum??
Go to the top of the page
+Quote Post
Michasko
post
Post #6





Grupa: Zarejestrowani
Postów: 283
Pomógł: 31
Dołączył: 10.01.2006
Skąd: Działoszyn

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


Cytat(armind @ 24.01.2013, 21:19:03 ) *
Czy ktos z łąski swojej moze mi pomóc?? sram sie z tym....jak nie potraficie pomóc to po co robicie te forum??


Mistrzuniu, ludzie mają swoje problemy, poza tym zapewne nikt nie ma ochoty pomagać komuś, kto uważa, że jest to nasz obowiązek. Bo to nie nasz obowiązek, a jedynie dobra wola. Więc doceń co masz...
Tak więc zamiast gotowca, powiem tyle - poczytaj o wyrażeniach regularnych. Albo pomyśl o zdefiniowaniu obu możliwości (ze spacją z przodu i z tyłu).

Ten post edytował Michasko 24.01.2013, 21:29:45
Go to the top of the page
+Quote Post
kristaps
post
Post #7





Grupa: Zarejestrowani
Postów: 279
Pomógł: 36
Dołączył: 1.03.2012

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


Po tym tutorialu powinieneś wiedzieć wszystko o regexp. Więc albo go przerób i rozwiąż swój problem, albo nabierz trochę pokory.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 15:21