Autor | Zpráva | ||
---|---|---|---|
lachim15 Profil |
#1 · Zasláno: 18. 12. 2012, 17:32:16
Zdravím,
Mám jednoduchý chat (přepracovaný shoutbox), který je propojený s databází. Chtěl bych se zeptat, jestli jde v php nějak udělat, aby to rozeznávalo BB kódy a když to nějak půjde, omezit, aby fungovaly jen některé z nich? díky za odpovědi :) |
||
nemeja Profil |
#2 · Zasláno: 19. 12. 2012, 08:29:50
Koukni se na funkci preg_replace a potom Regulární výrazy
|
||
lachim15 Profil |
#3 · Zasláno: 20. 12. 2012, 12:39:14
Díky za tip, po vánocích, jak bude víc času se na to zaměřím a zkusím něco udělat :)
|
||
Kcko Profil |
#4 · Zasláno: 20. 12. 2012, 13:00:18 · Upravil/a: Moderátor (editace znemožněna) 1. 1. 2013, 11:02:34
Nahrazení na bold
$string = preg_replace("#\[b\](.+?)\[/b\]#is", "<b>\\1</b>", $string); odkazy (od DGX) function shortenLinksCallback($match) { return "<a href='$match[0]'>" . preg_replace( '~(.{40}[a-z0-9]*.).{10,}([^a-z0-9;].*.{10,})~i', '\\1…\\2', $match[0] ) . "</a>"; } function shortenLinks($text) { static $chars = "][;#%&+./0-9:=?a-z_~-"; return preg_replace_callback( "(\\bhttps?://[$chars]+\\.[$chars]*[][+/0-9=a-z_~;])i", 'shortenLinksCallback', $text ); } A pro srandu, nahrazování obrázků, odkazů na ČSFD a videa na Youtube $pattern[]="/\[img\](http[s]*:\/\/[^<> \n\r\[\]&]+?\.(gif|jpg|jpeg|png))\[\/img\]/i"; //$replacement[]='<a href="\\1" target="_blank"><img src="\\1" alt="" title="" /></a>'; $replacement[] = "<a href='x!x$1' class=\"colorbox\"><img style='max-width: 100%' src='x!x$1'></a>"; $pattern[]="/\[imgcsfd\](http[s]*:\/\/[^<> \n\r\[\]&]+?\.(gif|jpg|jpeg|png))\[\/imgcsfd\]/i"; //$replacement[]='<a href="\\1" target="_blank"><img src="\\1" alt="" title="" /></a>'; $replacement[] = "<a href='x!x$1' class=\"colorbox\"><img style='max-width: 25%; float: left; margin-right: 5px;' src='x!x$1'></a>"; $pattern[]="/\[imgyt\](http[s]*:\/\/[^<> \n\r\[\]&]+?\.(gif|jpg|jpeg|png))\[\/imgyt\]/i"; //$replacement[]='<a href="\\1" target="_blank"><img src="\\1" alt="" title="" /></a>'; $replacement[] = "<a href='x!x$1' class=\"colorbox\"><img style='max-width: 33.33%; float: left; margin-right: 5px;' src='x!x$1'></a>"; + nápomocné funkce public static function getCSFD($m) { $out = ''; if (strpos($m[1], 'csfd') === FALSE) return $m[1]; include_once 'library/simple_html_dom.php'; $f = file_get_html($m[1]); $arr = array(); $arr[0] = '[imgcsfd]' . $f->find("#poster img", 0)->src . '[/imgcsfd]'; $arr[] = '.']' .trim( $f->find("#main h1", 0)->plaintext) . ''; //$arr[] = 'režie: ' . trim($f->find("#main .origin", 0)->next_sibling()->children(1)->plaintext) . ''; $arr[] = trim($f->find("#main .genre", 0)->plaintext); $arr[] = trim($f->find("#main .origin", 0)->plaintext); $arr[] = '' . trim($f->find("#rating", 0)->plaintext) . ''; $out = $arr[0]; unset($arr[0]); $out .= implode(", ", $arr) . "<div class='cl'></div>"; return $out; } public static function getYT($m) { $xurl = str_replace('[yt]', '', $m[0]); $xurl = str_replace('[/yt]', '', $xurl); $arr = array(); $arr[0] = '[imgyt].'/2.jpg[/imgyt].'/2.jpg[/imgyt]http://img.youtube.com/vi/'.$m[2].'/2.jpg[/imgyt]'; $out = ''; $url = "http://gdata.youtube.com/feeds/api/videos/" . $m[2]; $doc = simplexml_load_file($url); $media = $doc->children('http://search.yahoo.com/mrss/'); $yt = $media->children('http://gdata.youtube.com/schemas/2007'); $attr1 = $media->group->thumbnail[0]->attributes(); $thumbnail = $attr1['url']; $attr2 = $yt->duration->attributes(); $length = $attr2['seconds']; $videoDuration = floor($length/60) . ":" . str_pad($length % 60, 2, 0, STR_PAD_LEFT); $out = $arr[0]; unset($arr[0]); $arr[] = '' .$doc->title. ''; $arr[] = (string) $doc->category[1]['label']; $arr[] = $videoDuration; $out .= implode(", ", $arr) . "<div class='cl'></div>"; return $out; } |
||
lachim15 Profil |
#5 · Zasláno: 20. 12. 2012, 14:15:46
Díky za další funkce, taky na ně mrknu :)
|
||
Časová prodleva: 11 dní
|
|||
lachim15 Profil |
#6 · Zasláno: 31. 12. 2012, 16:37:11
Funguje parádně super ! :)
|
||
Časová prodleva: 11 let
|
0