2013-12-12 143 views
1

我使用simple_html_dom [http://sourceforge.net/projects/simplehtmldom/]来解析HTML。用<script>内容替换<script src =“url”></script>

我试图让所有的<script>网址,抢内容,然后在$html变量取代它......我有这样的,它几乎作品像我想:

$html_elements = str_get_html($html); 
$current_src = array(); 
$new_src = array(); 
foreach($html_elements->find('script') as $element) { 
    if($element->src != '') 
    { 
     $script_url = $element->src; 

     $script_data = get_script($script_url); 

     $current_src[] = $element->outertext; 
     $new_src[] = "<script>" . $element->innertext . "\n" . $script_data . "</script>"; 
    } 
} 

$html = str_replace($current_src, $new_src, $html); 

function get_script($url) 
{ 
    $data = file_get_contents($url); 
    return $data; 
} 

问题是,它似乎是把JavaScript文件中的加号转换为空格,当所有的说法和完成时?

+1

这并没有任何意义,我看不到你的任何代码,将+转换空间。你可以调试它,并找出它究竟发生了什么? –

+0

@AbhiBeckert感谢您的帮助!我也完全困惑!你说得对,经过很多调试后,我发现在代码中有一个额外的'urldecode()'是问题所在! – C0NFUS3D

回答

0

请参考上面的注释部分。

进一步调试后,我后来在代码通过解析urldecode()数据一对多倍。

相关问题