2012-11-08 102 views
1

display圖像或視頻我添加按鈕到我的表單像這樣我簡單的內容管理系統。我寫文章等,所以我想添加圖片和視頻也。我想使用自定義標記加入使用自定義標籤在php

function formatText (el,tagstart,tagend) { 

    if (el.setSelectionRange) { 
    el.value = el.value.substring(0,el.selectionStart) + tagstart + el.value.substring(el.selectionStart,el.selectionEnd) + tagend + el.value.substring(el.selectionEnd,el.value.length) 
    } 
    else { 
    var selectedText = document.selection.createRange().text; 

    if (selectedText != "") { 
     var newText = tagstart + selectedText + tagend; 
     document.selection.createRange().text = newText; 
    } 

    } 



} 


<form name="my_form"> 
<textarea name="my_textarea" id="mytext"></textarea><br /> 
<input type="button" value="IMAGE" onclick="formatText (document.getElementById('mytext'),'[IMAGE]','[/IMAGE]');" /> 

這是添加[IMAGE] [/ IMAGE]標籤爲我的文字區,我想表明這個標籤之間的圖像鏈接提交表單後。同樣,我想添加[VIDEO] [/ VIDEO]標籤,如果我在這些標籤之間寫入youtube鏈接,則在顯示頁面時顯示視頻。

我該怎麼做?

+0

要顯示youtube視頻,您必須插入youtube的自定義嵌入代碼。請參閱http://support.google.com/youtube/bin/answer.py?hl=zh_CN&answer=171780。 –

+0

如何與自定義標籤集成? – Seyhan

+0

我不明白你的意思是自定義標籤。 –

回答

0

此代碼應該工作。請參閱評論以獲取更多解釋。

//The data for this variable would be read from a database, user input, etc. 
$content = "Non augue, ultrices[VIDEO]www.youtube.com/?vvddee[/VIDEO] ut elementum natoque tempor placerat. Egestas, penatibus urna, dis risus habitasse. Rhoncus augue urna porta, enim cum risus eu tortor in, p[IMAGE]images/abcde.png[/IMAGE]lacerat rhoncus mus tortor? Nec, magnis, enim elementum non urna eros augue, ridiculus porta dapibus? Parturient, dictumst nunc vel turpis! Eu eros vel tempor cum in."; 

//Replace custom video tag with youtube embed 
preg_match_all('/\[VIDEO\](https?:\/\/)?(www.)?youtube.com(\/watch\?v=|\/?\?)?(\w*)\[\/VIDEO\]/im', $content, $matches, PREG_SET_ORDER); 
foreach($matches as $match){ 
    $content = str_replace($match[0],'<iframe width="420" height="315" src="http://www.youtube.com/embed/'.$match[4].'" frameborder="0" allowfullscreen></iframe>',$content); 
} 

//Replace custom image tag with html image tag 
preg_match_all('/\[IMAGE\](.*)\[\/IMAGE\]/im', $content, $matches, PREG_SET_ORDER); 
foreach($matches as $match){ 
    $content = str_replace($match[0],'<img src="'.$match[1].'"></image>',$content); 
} 
echo $content; 

希望這會有所幫助。

+0

如何通過php函數來執行此操作?這在我的代碼中不起作用,匹配給出了錯誤。 – Seyhan

+0

它給你什麼錯誤信息? –

+0

你能寫一個這個腳本的工作演示嗎? – Seyhan

0

編輯:OP最終澄清了一個PHP代碼的答案是想(見我的其他答案)。如果其他人想要JS解決方案,請留在這裏。

有一個很難測試代碼(的jsfiddle不工作對我來說),但我認爲這應該工作:

對於YouTube視頻:

var el = document.getElementById('<your element id>'); 
while(true){ 
    var match = '/\[VIDEO\](https?:\/\/)?(www.)?youtube.com(\/watch\?v=|\/?\?)?(\w*)\[\/VIDEO\]/im.exec(el.innerHTML); 
    if(match==null)break; 
    el.innerHTML=el.innerHTML.replace(match[0],'<iframe width="420" height="315" src="http://www.youtube.com/embed/'+match[1]+'" frameborder="0" allowfullscreen></iframe>'); 
}​ 

你會想要做的一個圖像類似的東西。請注意,如果您對元素中的任何元素有任何引用,他們將被破壞。希望這可以幫助。

+0

我會測試這個,所以可能是 html代碼是爲圖片如果我可以將它包含到代碼 – Seyhan

+0

對,爲了使它與圖像一起工作,您只需用特定於視頻的代碼替換特定於圖像的代碼即可。如果你讓我知道視頻的代碼是否有效,我可以嘗試編輯我的答案以包含圖像代碼。 –

+0

什麼是元素ID?以及如何將此代碼添加到視圖內容頁面?這是一個函數嗎? – Seyhan