php
  • javascript
  • string
  • 2012-06-07 40 views 0 likes 
    0

    我傳遞一個PHP字符串到onclick。此文本來自YouTube(視頻說明)。在某些情況下,字符串會破壞代碼。PHP的字符串到JavaScript可以打破代碼 - 一些字符,我猜,是問題?

    字符\ n \ r'和「被刪除,因此並不清楚性格的原因。

    echo "<span onclick='update_hits(\"".$id."\");vidtxt=\"".$desc6."\";openVideo(\"".$v."\",\"".$sn." : ".addslashes($title)."\",0)'><img src='".$apng."' border='0' />Play large</span>"; 
    

    我已經試過所有我能想到的解決問題,但都沒有成功。

    $desc6=nl2br($desc6); 
    $desc6=preg_replace('/[\x00-\x1f]/', '', $desc6); 
    $desc6=preg_replace('/\xc2[\x80-\x9f]/', '', $desc6); 
    $desc6=preg_replace('/[\x7f]/', '', $desc6); 
    $desc6=nl2br($desc6); 
    $desc6 = iconv("UTF-8", "UTF-8//IGNORE", $desc6); 
    $desc6=preg_replace('~\p{C}+~u', '', $desc6); 
    $desc6=htmlspecialchars($desc6); 
    $desc6=preg_replace('/[\x00-\x1F\x7F]/', '', $desc6); 
    $desc6=ereg_replace('[[:cntrl:]]', '', $desc6); 
    $desc6 = str_replace(chr(127), "", $desc6); 
    $desc6=preg_replace('/\bKa(\W|$)/i', '', $desc6); 
    $desc6=addslashes($desc6); 
    

    大多數描述字符串做工精細,即使是那些在其他語言的文字。但有時事情打破這一點。

    剝離只是ASCII碼,這意味着我無法展示非英語語言,確實有效。

    $desc6=preg_replace('/[^(\x20-\x7F)]*/','', $desc6); 
    

    下使所有描述的工作,但像韓文顯示不正確:

    $desc6 = iconv("ISO-8859-1", "UTF-8//IGNORE", $desc6); 
    

    任何想法?

    ps:
    $ desc6 = json_encode($ desc6); 打破了所有:(

    +0

    你甚至不知道這是代碼做什麼?我的意思是,你多次執行一些步驟(例如'nl2br',移除0x7F)。 – Gumbo

    +0

    他們正在過濾UTF。當我找到解決方案時,我會刪除冗餘。 – Blah479

    +0

    你的HTML頁面確保它的字符集是UTF-8嗎? ''?你也有一個破壞你的代碼的例子字符串?鏈接到您的應用程序? –

    回答

    3

    所有你需要的是兩個功能:

    無論是在行動:

    echo "<span onclick='".htmlspecialchars("update_hits(".json_encode($id).");vidtxt=".json_encode($desc6).";openVideo(".json_encode($v).",".json_encode($sn." : ".$title).",0)", ENT_QUOTES)."'><img src='".htmlspecialchars($apng, ENT_QUOTES)."' border='0' />Play large</span>"; 
    
    +0

    已經嘗試過,但沒有幫助。謝謝你的回覆! – Blah479

    +0

    這看起來不正確。似乎有「和‘S失蹤我試過vidtxt = json_encode?(\’,但沒有成功 - 全碎了需要TI添加JSON腳本 – Blah479

    +0

    @SteveClarke請嘗試的例子,我寫了」 $ fgh2‘\’。)? 。它它不需要以任何方式改變或調整這是隨時可以使用,因爲它是 – Gumbo

    0

    .addslashes($title)."\",0) 難道不應該是「\」」

    +0

    我想我有這個權利。 – Blah479

    相關問題