لديك حساب بالفعل؟ دخول
دخول  سجل الأن 
استبدال جزء من نص معين بواسطه اكواد بي اتش بي
السلام عليكم ورحمه الله وبركاته
اريد شرح لاستبدال جزء معين من نص طويل او مقاله
بمعني سأوضح بوضع كود مثال فقط
<?php 
$text = "المقاله هنا المقاله هنا المقاله هنا المقاله هنا ومشاهده فيديو باخرها وليكن www.youtube.com/watch?v=-MasxktXtPM";
?>


الان قمنا بجلب مقاله في متغير تكست وبها لينك يوتيوب
اريد تحويل رابط اليوتيوب الي مربع المشاهده embed
ويبقي باقي المقال كما هو فقط يستبدل رابط اليوتيوب بمربع المشاهده
مثال حي وهو الفيس بوك عند وضع رابط بفيديو يقراءه تلقائيا او اي رابط اخر هذا مااريده ولكن يفضل ان يكون بدون اجاكس او جيكوري فقط بي اتش بي
تاريخ البداية: 10 / يناير / 2012 الساعة 19:37 اخر نشاط: 11 / يناير / 2012 الساعة 13:17 php youtube regex

الـregex هو '%http://(?:\S+\.swf\b|\S+?youtube\S+)%'
10 / يناير / 2012 الساعة 19:48

3 إجابات
أقترح عليك تعمل طريقة بسيطة و حلوة
كود اليوتيوب تضعه في المقالات هكذا
[yt id="كود الفيديو" ]
ثم ستقوم الدالة التالية بتحويله الى فيديو عند عرض المقال
function YouTube($atts) {
extract(shortcode_atts(array("id" => ''), $atts));
return '<iframe width="540" height="385" src="http://www.youtube.com/embed/'.$id.'" frameborder="0" allowfullscreen></iframe>';
}
add_shortcode("yt", "YouTube");	
?>

بواسطة: Imad
منذ: 11 / يناير / 2012 الساعة 13:12

هذه فورمه موقع vimeo
/http:\/\/(www\.)?vimeo.com\/(\d+)($|\/
الرابط المراد قرائه هو : http://vimeo.com/34608191 ولكن كود الفيديو يكون
<iframe src="http://player.vimeo.com/video/34608191?title=0&amp;byline=0&amp;portrait=0" width="400" height="225" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe><p><a href="http://vimeo.com/34608191">PressPausePlay</a> from <a href="http://vimeo.com/houseofradon">House of Radon</a> on <a href="http://vimeo.com">Vimeo</a>.</p>


رابط الفيديو بيكون
http://player.vimeo.com/video/34608191
كيف هيتم وضع الرابط صحيح بالكود لان عند وضعه بيظهر بدون الصب دومين فمابيطلع شئ فالصفحه

بواسطة: Wolvrine
منذ: 10 / يناير / 2012 الساعة 20:33

تعديل: Wolvrine
منذ: 10 / يناير / 2012 الساعة 20:34

فشلت بعد اكثر من 30 محاولة ، اتمنى ان يساعدوك الاخوة
اخر شىء وصلت له
/http:\/\/(?:www\.)?(vimeo|youtube)\.com\/(?:watch\?v=)?(.*?)(?:\z|$|&)/

10 / يناير / 2012 الساعة 21:17

على حسب الدالة التي وضعت لك لعرض فيديو فيمو استعمل الآتي [vm id="كود الفيديو" ] و عدل على الدالة من يوتيوب الى فيمو
11 / يناير / 2012 الساعة 13:17

هذا هو ما تريد بالتفصيل ، اولا نستخدم المعايير القياسية للاستبدال وهى
'%http://(?:\S+\.swf\b|\S+?youtube\S+)%'
وبعد ذلك نستبدل المتغير بدالة preg_replace_callback كالتالى
$text = "المقاله هنا المقاله هنا المقاله هنا المقاله هنا ومشاهده فيديو باخرها وليكن http://www.youtube.com/v/gFhSMMd6YvQ";


echo preg_replace_callback('%http://(?:\S+\.swf\b|\S+?youtube\S+)%', "youtube_eembed" , $text);


function youtube_eembed($matches){
    print "<object style='height: 390px; width: 640px'>";
    print "<param name='movie' value='{$matches[0]}'>";
    print "<param name='allowFullScreen' value='true'>";
    print "<param name='allowScriptAccess' value='always'>";
    print "<embed src='{$matches[0]}' type='application/x-shockwave-flash' allowfullscreen='true' allowScriptAccess='always' width='640' height='360'>";
    print "</object>";
}

بواسطة: molhm
منذ: 10 / يناير / 2012 الساعة 20:2

مشكور اخي رائع ولكن نفترض اني المقاله بها موقع اخر خاص بالفيديوه مثل
viemo او novamova او ميجا فيديو
كيف يكون شكل ال
preg_replace_callback ?
10 / يناير / 2012 الساعة 20:7

على حسب الفورمة ، ما هى فورمت كل واحد منهم؟
10 / يناير / 2012 الساعة 20:30

أقترح تعمل بالحل الذي وضعت لك و يمكنك التحكم بالدالة على حسب أي موقع تريد
11 / يناير / 2012 الساعة 13:14

أنشر اجابتك

xهل تريد الاجابة عن هذا السؤال؟ من فضلك سجل دخول او اشترك لتتمكن من الاجابة