Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyrażenia regularne - wydobycie części linka
Forum PHP.pl > Forum > PHP
pieprzmak
Cześć.
Mam problem z przetworzeniem linka.
Na wyrażeniach regularnych nie znam się zbyt dobrze, dlatego proszę o pomoc.
Otóż mamy taki kod:
  1. $patterns[] = "#\[youtube\]http://(?:www\.)?youtube.com/watch\?v=([0-9A-Za-z-_]{11})[^[]*\[/youtube\]#is";

I z tej zmiennej po preg_replace ( jest to skrypt przemo ) wychodzi ta część : ([0-9A-Za-z-_]{11})
Natomiast jak zrobić coś takiego tyle, że do serwisu zippyshare? Przykładowy link:
  1. http://www24.zippyshare.com/v/49535762/file.html

numerek po www jest zmienny, i właśnie chciałbym wydobyć ten numer: 49535762
Z góry dzięki za pomoc.
cudny
  1. $string = 'http://www24.zippyshare.com/v/49535762/file.html';
  2. preg_math('/http\:\/\/www([0-9]){1,5}\.zippyshare\.com/',$string,$out);
  3. echo '<pre>';
  4. print_r($out);
  5. echo '</pre>';


Nie sprawdzałem ale powinno hulać
pieprzmak
No właśnie nie do końca o to chodziło. Tutaj jest instrukcja modyfikacji z youtube:
Kod
##############################################################
## Nazwa MOD'a : BBCode Youtuber Mod v1.0, modified and tested on Phpbb2, ver. '1.12.5 by Przemo'.
## Autor MOD'u : michaeltripp < iamdrscience@hotmail.com > (Mike) http://itsbeenconfirmed.com
## Zmodyfikowany przez : zuarw2006 < zuraw2006@gmail.com> (Mariusz Ż.) http://phpmg.bee.pl
## Informacje o MOD'zie : Dodaje nowy tag bbCode. Dzięki niemu możemy dzielić sie filmikami z serwisu Youtube.com, nie opuszczając naszego forum.
## Wersja MOD'a : 1.5.0
##############################################################
## Poziom trudnosci : Prosty
## Czas instalcji: ~8 minut
## Pliki do edycji[7] :
## - templates/NAZWA_STYLU/bbcode.tpl
## - templates/NAZWA_SKINU/posting_body.tpl
## - includes/bbcode.php
## - images/jsscripts.js
## - posting.php
## - privmsg.php
## - language/lang_polish/lang_main.php
##
## Dołaczone pliki: Brak
#
#-----[ OTWÓRZ ]---------------------------------
#
includes/bbcode.php

#
#-----[ ZNAJDZ ]--------------------------------------------------
#  
          $bbcode_tpl['code_open'] = str_replace('{L_CODE}', $lang['Code'], $bbcode_tpl['code_open']);

#
#-----[ DODAJ PONIZEJ ]-------------------------------------------
#
          $bbcode_tpl['youtube_open'] = str_replace('{L_YouTube}', $lang['youtube_link'], $bbcode_tpl['youtube_open']); // youtube tag

#
#-----[ ZANJDZ ]------------------------------------------
#

$bbcode_tpl['email'] = str_replace('{EMAIL}', '\\1', $bbcode_tpl['email']);

#
#-----[ DODAJ PO ]------------------------------------------
#

$bbcode_tpl['youtube'] = str_replace('{YOUTUBEID}', '\\1', $bbcode_tpl['youtube']); //YouTube Tag
$bbcode_tpl['youtube'] = str_replace('{YOUTUBELINK}', $lang['youtube_link'], $bbcode_tpl['youtube']); //YouTube Tag

#
#-----[ ZANJDZ ]------------------------------------------
#

$replacements[] = $bbcode_tpl['email'];

#
#-----[ DODAJ PO ]------------------------------------------
#

$patterns[] = "#\[youtube\]http://(?:www\.)?youtube.com/watch\?v=([0-9A-Za-z-_]{11})[^[]*\[/youtube\]#is"; //YouTube Tag
$replacements[] = $bbcode_tpl['youtube']; //YouTube Tag

#-----[ Zapisz/Zamknij ]------------------------------------------
#
#-----[ OTWÓRZ ]------------------------------------------
#

templates/NAME SKIN/bbcode.tpl

#
#-----[ ZANJDZ ]------------------------------------------
#

<!-- BEGIN email --><a href="mailto:{EMAIL}">{EMAIL}</a><!-- END email -->

#
#-----[ DODAJ PO ]------------------------------------------
#

<!-- BEGIN youtube -->
<object width="425" height="350">
<param name="movie" value="http://www.youtube.com/v/{YOUTUBEID}"></param>
<embed src="http://www.youtube.com/v/{YOUTUBEID}" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed>
</object>
<!-- END youtube -->

#-----[ Zapisz/Zamknij ]------------------------------------------
#
#-----[ OTWÓRZ ]---------------------------------
#

images/jsscripts.js

#
#-----[ ZANJDZ ]---------------------------------
#

bbtags = new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]','[quote]','[/quote]','[]code]]','[]/code[]','[list]','[/list]','[list=]','[/list]','[img]','[/img]','[url]','[/url]','[stream]','[/stream]','[fade]','[/fade]','[scroll]','[/scroll]','[swf width= height=]','[/swf]','[center]','[/center]','[hide]','[/hide]'

#
#-----[ DODAJ ZA ]---------------------------------
#

,'[youtube]','[/youtube]'

#-----[ Zapisz/Zamknij ]------------------------------------------
#
#-----[ OTWÓRZ ]---------------------------------
#

templates/NAZWA_SKINU/posting_body.tpl

#
#-----[ ZANJDZ ]------------------------------------------

var f_help = '{L_BBCODE_F_HELP}';

#
#-----[ DODAJ PO ]---------------------------------
#

var yt_help = '{L_BBCODE_YT_HELP}'; <!-- YouTube tag -->

#-----[ ZANJDZ ]------------------------------------------

{BUTTON_B}{BUTTON_I}{BUTTON_U}{BUTTON_Q}{BUTTON_C}

#
#-----[ DODAJ PO ]---------------------------------
#

{BUTTON_YT}

#-----[ ZANJDZ ]------------------------------------------

<select class="post" name="addbbcode30" onChange="bbfontstyle('[color=' + this.form.addbbcode30.options[this.form.addbbcode30.selectedIndex].value + ']', '[/color]'); this.form.addbbcode30.value='444444';" onMouseOver="helpline('s')">

#
#-----[ ZAMIEN NA ]---------------------------------
#

<select class="post" name="addbbcode32" onChange="bbfontstyle('[color=' + this.form.addbbcode32.options[this.form.addbbcode32.selectedIndex].value + ']', '[/color]'); this.form.addbbcode32.value='444444';" onMouseOver="helpline('s')">

#
#-----[ ZANJDZ ]------------------------------------------

<select name="addbbcode32" onChange="bbfontstyle('[size=' + this.form.addbbcode32.options[this.form.addbbcode32.selectedIndex].value + ']', '[/size]'); this.form.addbbcode32.value='12';" onMouseOver="helpline('f')">

#
#-----[ ZAMIEN NA ]---------------------------------
#

<select name="addbbcode36" onChange="bbfontstyle('[size=' + this.form.addbbcode36.options[this.form.addbbcode36.selectedIndex].value + ']', '[/size]'); this.form.addbbcode36.value='12';" onMouseOver="helpline('f')">

#
#-----[ Zapisz/Zamknij ]------------------------------------------
#
#-----[ OTWÓRZ ]---------------------------------
#

posting.php

#
#-----[ ZANJDZ ]------------------------------------------
#

'L_BBCODE_F_HELP' => $lang['bbcode_f_help'],

#
#-----[ DODAJ PO ]------------------------------------------
#

'L_BBCODE_YT_HELP' => $lang['bbcode_yt_help'], // YouTube Tag

#-----[ ZNAJDZ ]-------------------------------------------------
#
    'BUTTON_Q' => ($board_config['button_q']) ? '<input type="button" class="button" accesskey="q" name="addbbcode6" value="Quote" style="width: 50px" onClick="bbstyle(6)" onMouseOver="helpline(\'q\')" /> ' : '',

#
#-----[ DODAJ PONIZEJ ]------------------------------------------
#
    'BUTTON_YT' => '<input type="button" class="button" accesskey="yt" name="addbbcode30" value="YouTube" style="width: 60px" onClick="bbstyle(30)" onMouseOver="helpline(\'yt\')" /> ',

#
#-----[ Zapisz/Zamknij ]---------------------------

#-----[ OTWÓRZ ]---------------------------------
#

privmsg.php

#
#-----[ ZANJDZ ]------------------------------------------
#

'L_BBCODE_F_HELP' => $lang['bbcode_f_help'],

#
#-----[ DODAJ PO ]------------------------------------------
#

'L_BBCODE_YT_HELP' => $lang['bbcode_yt_help'], // YouTube Tag

#-----[ ZNAJDZ ]-------------------------------------------------
#
    'BUTTON_Q' => ($board_config['button_q']) ? '<input type="button" class="button" accesskey="q" name="addbbcode6" value="Quote" style="width: 50px" onClick="bbstyle(6)" onMouseOver="helpline(\'q\')" /> ' : '',

#
#-----[ DODAJ PONIZEJ ]------------------------------------------
#
    'BUTTON_YT' => '<input type="button" class="button" accesskey="yt" name="addbbcode30" value="YouTube" style="width: 60px" onClick="bbstyle(30)" onMouseOver="helpline(\'yt\')" /> ',

#
#-----[ Zapisz/Zamknij ]---------------------------
#-----[ OTWORZ ]-------------
#

language/lang_polish/lang_main.php

#-----[ ZNAJDZ ]-------------------------------------------------
#
$lang['Code'] = 'Kod';

#
#-----[ DODAJ PONIZEJ ]------------------------------------------
#
$lang['youtube_link'] = "YouTube"; // YouTube Tag

#
#-----[ ZNAJDZ ]-------------------------------------------------
#
$lang['bbcode_f_help'] = 'Rozmiar czcionki: [size=x-small]mały tekst[/size] Rada: zaznacz tekst i wybierz rozmiar';

#
#-----[ DODAJ PONIZEJ ]------------------------------------------
#
$lang['bbcode_yt_help'] = "Umie¶ć link do filmiku między tagami: [youtube][/youtube]"; // YouTube Tag

#
#-----[ Zapisz/Zamknij ]----
#
#-----[ SAVE/CLOSE ]------------------------------------------
#
# EoM

A tutaj jest plik odpowiedzialny za te bbcode.

http://speedy.sh/sjeWY/bbcode.php

Proszę o pomoc bo naprawdę nie ogarniam jak działa to bbcode, skoro nie ma nigdzie preg_match, jest tylko preg_replace a mimo to z linku jest wydobywany tylko numer.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.