Autor Zpráva
MikeCZ
Profil
Zdravim, potřeboval bych pomoct s regulerními výrazy v PHP. Neumím je...

V podstatě hledám v kódu část která začíná tagem <object a končí </object> (tedy videa nejčastěji)

Toto najde tag img

function returnImage ($text) {
    $text = html_entity_decode($text, ENT_QUOTES, 'UTF-8');
    //echo $text;
    $pattern = "/<img[^>]+\>/i";
    preg_match($pattern, $text, $matches);
    $text = $matches[0];
    return $text;
}


nevěděl by jste někdo upravit pattern
$pattern = "/<img[^>]+\>/i";

tak, aby našel to, co potřebuji? tedy <object až </object>

Děkuji.
Radek9
Profil
$pattern = "/\<object[^>]+\>(.+?)\<\/object\>/i";
MikeCZ
Profil
Díky, ale nějak mi to nefunguje :/.

Tohle je část kódu, kterou se snažím vytáhnout a která se nachází mezi hromadou ostatního kódu.
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="450" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/kdjBtPF6P1o&amp;hl=cs_CZ&amp;fs=1&amp;color1=0x5d1719&amp;color2=0xcd311b" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="450" height="344" src="http://www.youtube.com/v/kdjBtPF6P1o&amp;hl=cs_CZ&amp;fs=1&amp;color1=0x5d1719&amp;color2=0xcd311b" allowscriptaccess="always" allowfullscreen="true"></embed></object>


Tohle používám já:

function returnObject($text) {
    $text = html_entity_decode($text, ENT_QUOTES, 'UTF-8');
    $pattern = "/\<object[^>]+\>(.+?)\<\/object\>/i";
    preg_match($pattern, $text, $matches);
    $object = $matches[0];
    return $object;
}

$feedContent = $item->get_content();
$object = returnObject($feedContent);
echo $object;


$item->get_content() je celý obsah kódu...
MikeCZ
Profil
Aha, tak ne, ten content vrací bohužel jen zformátovanej text a obrázky :/
MikeCZ
Profil
Na tenhle to stejně nefunguje, neví někdo proč?

<object type="application/x-shockwave-flash" width="400" height="300" data="http://www.vimeo.com/moogaloop.swf?clip_id=8072896&amp;server=www.vimeo.com&amp;fullscreen=1&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=01AAEA">
	<param name="quality" value="best" />
	<param name="allowfullscreen" value="true" />
	<param name="scale" value="showAll" />
	<param name="movie" value="http://www.vimeo.com/moogaloop.swf?clip_id=8072896&amp;server=www.vimeo.com&amp;fullscreen=1&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=01AAEA" />
</object>
Majkl578
Profil
Co modifikátor s?

$text = '<object type="application/x-shockwave-flash" width="400" height="300" data="http://www.vimeo.com/moogaloop.swf?clip_id=8072896&amp;server=www.vimeo.com&amp;fullscreen=1&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=01AAEA">
    <param name="quality" value="best" />
    <param name="allowfullscreen" value="true" />
    <param name="scale" value="showAll" />
    <param name="movie" value="http://www.vimeo.com/moogaloop.swf?clip_id=8072896&amp;server=www.vimeo.com&amp;fullscreen=1&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=01AAEA" />
</object>';

preg_match_all('~\<object.*\>.*\</object\>~iUs', $text, $matches);

var_dump($matches);
MikeCZ
Profil
Děkuju :).

Díval jsem se na další modifikátory, ale radši nic přidávat nebudu, regulerní výrazy fakt neumim a nemam náladu se je snažit pochopit :D. Pokud by tě ještě cokoliv napadlo (v podstatě ten object potřebuji najít za každých okolností) tak to napiš pls. Díky :).
Majkl578
Profil
Tohle najde každý párový object. Nevím co bych dál upravil. :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: