View Single Post
ישן 21-06-06, 23:26   # 1
בניה
משתמש - היכל התהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: נחושה
הודעות: 3,434

בניה לא מחובר  

מדריכון לקבלת השדרן בשרת רדיו SHOUTcast

ב"ה


(תקעתי סתם כתובת של רדיו בשביל הדוגמא זה לא פרסום מכוון זו הכתובת הראשונה שמצאתי)
קודם כל כדי שהשרת רדיו יחשוב שאנחנו דפדפן ויתן לנו את הדף מצב ולא יתחיל לשדר לנו אז נשים את הקוד הזה:
PHP קוד:
if(ini_get("user_agent")!="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 2.0.50727)")
    
ini_set("user_agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 2.0.50727)"); 
הוא בעצם גורם לבקשות HTTP שנשלחות דרך השרת PHP שלנו להראות כמו בקשה של דפדפן.
עכשיו נקח את התוכן של הדף ככה:
PHP קוד:
$fp=fopen("http://84.94.230.220:7777/","r");
$status=fgets($fp); 
ועכשיו נשתמש בregExp לחלץ מהטקסט רק את השם שדרן ככה:
PHP קוד:
preg_match("/Stream Title: <\/font><\/td><td><font class=default><b>(.*?)<\/b><\/td><\/tr>/i",$status,$shadran); 
עכשיו המשתנה
קוד:
$shadran
הופך למערך שמכיל 2 אברים.
הראשון מכיל את-הטקסט שמתאים לתבנית regExp הכללית.
השני את הטקסט שמתאים לתבנית הפנימית(זו שמוקפת בסוגריים)
ובצם התבנית הפנימית מתאימה לשם השדרן. אז המשתנה
קוד:
$shadran[1]
מכיל את השדרן.

אם לא הבנתם את הדיבורים על תבניות/regExp מומלץ לקרוא את זה:
(אם לא הבנתם את הקטע האחרון כדאי לכם לקרוא את:
http://php.eitan.ac.il/main.php?id=00172)

הקוד הסופי:
PHP קוד:
<?php
if(ini_get("user_agent")!="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 2.0.50727)")
    
ini_set("user_agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 2.0.50727)");
$fp=fopen("http://84.94.230.220:7777/","r");
$status=fgets($fp);
preg_match("/Stream Title: <\/font><\/td><td><font class=default><b>(.*?)<\/b><\/td><\/tr>/i",$status,$shadran);
echo 
$shadran[1];
?>
אם יש שאלות, תשרשרו
  Reply With Quote