PDA

View Full Version : سوال: چگونه مقدار attribute تگ های خاص html را بخوانم ؟



mhazami
دوشنبه 26 آبان 1393, 21:51 عصر
سلام دوستان، کلاس های مختلفی هستن که اکثرا روی xml کاربرد دارن و میتونن مقدار attribute تگ هارو بخونن (یعنی مقدارش رو برگشت بدن) از جمله این کلاس ها میتونم به simple xml یا domDocument یا simple xml dom یا domelement اشاره کنم. و یه کلاس دیگه هم به اسم simple html dom هست که "تقریبا" همه ی تگ های html رو بجز این تگ که من میخوام، پشتیبانی میکنه. حالا من براتون سورس رو قطعه قطعه میکنم و توضیح میدم که کدوم attribute رو لازم دارم بخونم. (به قطعه کد اول زیاد توجه نکنید مهم نیست)


<html>
<head>
<title>IMDb Video Player: The Expendables 3</title>

<script src="http://i.media-imdb.com/images/SF66d41ec7090bbdde87e09a309dea6661/js/swfobject/1.5.js"></script>
<script src="http://i.media-imdb.com/images/SF539be3987208630802e712857c51a6c9/js/jquery.js"></script>
<script src="http://i.media-imdb.com/images/SFd623c0e90ec72503a4cb553c8cdd8b39/js/app/video/player.js"></script>

</head>
<body bgcolor="#000000" text="#FFFFFF" link="#3333ff" alink="#3333ff" vlink="#3333ff">


<div id="video-player-container">
<div id="mature-content-warning" style="display:none;" class="mature-content">
The following video contains material that is inappropriate for audiences under the age of 17.</div>
</div>
</div>
<div id="video-player">
<span class="error">
In order to play this video, you must have Flash
8 or higher installed on your
computer, and you must enable Javascript.
<br/>
<br/>
Flash is available for Mac, Windows, and Linux, and can be downloaded free
of charge <a href="http://www.macromedia.com/go/getflashplayer">here</a>.
</span>
</div>
</div>

<script type="text/javascript">
// <=!=[=C=D=A=T=A=[

IMDbPlayer.play = function() {
IMDbPlayer.log('playing');
if ( parent != self && parent.VideoUI && parent.VideoUI.onplay ) {
parent.VideoUI.onplay();
}
}
IMDbPlayer.addEvent(IMDbPlayer.play);

IMDbPlayer.playerType = 'internal';

var so = new SWFObject(
"/images/js/app/video/mediaplayer.swf",
"player",
"640",
"480",
"8",
"#FFFFFF"
);

so.addVariable("file", "http%3A%2F%2Fvideo-http.media-imdb.com%2FMV5BMzNiNDNmMTItY2Y1OC00ZjU2LThiNmUtOTg wZDFhNjhmMTMyXkExMV5BbXA0XkFpbWRiLWV0cy10cmFuc2NvZ GU%40.mp4%3FExpires%3D1416272090%26Signature%3D1Xy DcgDZ8D~1-H6Nu7kSIGnimb3iVl9bIM2n9-rhvFshQ4qyuIfW~1ffNeLOXYEMW1g5cPnqXjuXbYRAMqKoG25a blm7Sq8pV89K8lNOyL7szGS-~YL2u3lIHyKxkD44KC4tYLvHO~YCSwKfz83mpATNSJoH16PQjB UML1KSAj8_%26Key-Pair-Id%3DAPKAILW5I44IHKUN2DYA%26hint%3Dflv");
IMDbPlayer.playerKey = "http://video-http.media-imdb.com/MV5BMzNiNDNmMTItY2Y1OC00ZjU2LThiNmUtOTgwZDFhNjhmMT MyXkExMV5BbXA0XkFpbWRiLWV0cy10cmFuc2NvZGU@.mp4?Exp ires=1416272090&Signature=1XyDcgDZ8D~1-H6Nu7kSIGnimb3iVl9bIM2n9-rhvFshQ4qyuIfW~1ffNeLOXYEMW1g5cPnqXjuXbYRAMqKoG25a blm7Sq8pV89K8lNOyL7szGS-~YL2u3lIHyKxkD44KC4tYLvHO~YCSwKfz83mpATNSJoH16PQjB UML1KSAj8_&Key-Pair-Id=APKAILW5I44IHKUN2DYA&hint=flv";

so.addVariable("recommendations", "recommendations");

so.addVariable("autostart","true");

so.addVariable("width", 640);
so.addVariable("height", 480);
so.addVariable("image", "http://ia.media-imdb.com/images/M/MV5BOTA3Mzg3NTcyNl5BMl5BanBnXkFtZTgwNDgzOTAzMzE@._ V1_.jpg");
so.addParam("wmode", "transparent");
so.addVariable("backcolor","0x000000");
so.addVariable("frontcolor","0xCCCCCC");
so.addVariable("lightcolor","0xFFFFCC");
so.addVariable("shuffle","false");
so.addVariable("callback","/video/imdb/vi1896197145/metrics");
so.addVariable("repeat", "list");
so.addVariable("linktarget", "_top");
so.addParam("allowFullScreen", "true");
so.addParam("AllowScriptAccess", "always");
so.addVariable("enablejs", "true");

IMDbPlayer.notMatureContent(so);

// ]=]=>
</script>

<img id='adblockdetect' src="http://i.media-imdb.com/images/SF9bb191c6827273aa978cab39a3587950/adblock.swf.gif" height="1" width="1" style="border:0px; margin: 0px; padding: 0px;">

<script>
IMDbPlayer.viconst = "vi1896197145";
IMDbPlayer.addEvent(IMDbPlayer.detectAdblock);
</script>

<!-- h=iop2010 i=2014-11-16 s=legacy(default) t='Mon Nov 17 07:54:50 2014' -->
</body>
</html>


قطعه کد بالا رو فقط نوشتم که متوجه بشین فقط و فقط تگ embed نیست که توی صفحه وجود داره، پس وقتی که بخوام صفحه رو به عنوان xml بخونم باید اول بگم، html,body,div,div,embed خب من راهی نیاز دارم که سریعا به سراغ این تگ که پایین نوشتم بره.


<embed width="640" height="480" flashvars="file=http%3A%2F%2Fvideo-http.media-imdb.com%2FMV5BMzNiNDNmMTItY2Y1OC00ZjU2LThiNmUtOTg wZDFhNjhmMTMyXkExMV5BbXA0XkFpbWRiLWV0cy10cmFuc2NvZ GU%40.mp4%3FExpires%3D1416272090%26Signature%3D1Xy DcgDZ8D~1-H6Nu7kSIGnimb3iVl9bIM2n9-rhvFshQ4qyuIfW~1ffNeLOXYEMW1g5cPnqXjuXbYRAMqKoG25a blm7Sq8pV89K8lNOyL7szGS-~YL2u3lIHyKxkD44KC4tYLvHO~YCSwKfz83mpATNSJoH16PQjB UML1KSAj8_%26Key-Pair-Id%3DAPKAILW5I44IHKUN2DYA%26hint%3Dflv&amp;recommendat ions=recommendations&amp;autostart=true&amp;width=640&amp;heig ht=480&amp;image=http://ia.media-imdb.com/images/M/MV5BOTA3Mzg3NTcyNl5BMl5BanBnXkFtZTgwNDgzOTAzMzE@._ V1_.jpg&amp;backcolor=0x000000&amp;frontcolor=0xCCCCCC&amp;lig htcolor=0xFFFFCC&amp;shuffle=false&amp;callback=/video/imdb/vi1896197145/metrics&amp;repeat=list&amp;linktarget=_top&amp;enablejs=true" allowscriptaccess="always" allowfullscreen="true" wmode="transparent" quality="high" bgcolor="#FFFFFF" name="player" id="player" style="undefined" src="/images/js/app/video/mediaplayer.swf" type="application/x-shockwave-flash">

توی قطعه کد بالا من لازم دارم مقدار flashvars رو برگشت بدم. ولی نمیدونم چطوری این کار رو انجام بدم! لطفا اگه امکانش هست قطعه کد مورد نظر رو برام بنویسین یا توضیح بدین :قلب:

این هم آدرس صفحه (http://www.imdb.com//video/imdb/vi1896197145/player) یه پلیر ئه که اگه با فایر باگ اونو بررسی کنید کد تگ embed رو بهتون نشون میده.


البته به نظرم یه راه حل دیگه هم وجود داره. توی قطعه کد اول این خط اگه بشه مقدار متغیر رو به دست آورد بازم مشکل من حل میشه.


IMDbPlayer.playerKey = "http://video-http.media-imdb.com/MV5BMzNiNDNmMTItY2Y1OC00ZjU2LThiNmUtOTgwZDFhNjhmMT MyXkExMV5BbXA0XkFpbWRiLWV0cy10cmFuc2NvZGU@.mp4?Exp ires=1416272090&Signature=1XyDcgDZ8D~1-H6Nu7kSIGnimb3iVl9bIM2n9-rhvFshQ4qyuIfW~1ffNeLOXYEMW1g5cPnqXjuXbYRAMqKoG25a blm7Sq8pV89K8lNOyL7szGS-~YL2u3lIHyKxkD44KC4tYLvHO~YCSwKfz83mpATNSJoH16PQjB UML1KSAj8_&Key-Pair-Id=APKAILW5I44IHKUN2DYA&hint=flv";



مقداری که بین " (دابل کوتیشن) وجود داره رو باید برگشت بدم، با regularexpressions چطوری این کار رو انجام بدم، اگه میشه تو نوشتن pattern اش کمکم کنید.

hamedarian2009
دوشنبه 26 آبان 1393, 22:27 عصر
با جی کوئری به نطرم راحت تر می تونید به مقدار اون attribute دسترسی داشته باشین

mhazami
دوشنبه 26 آبان 1393, 22:46 عصر
توی این پروژه نمیتونم از jquery استفاده کنم باید حتما php باشه