1
我正在使用正则表达式解析js文件服务器端,以便在实际将代码发送到客户端之前查找模板的所有元素。对于文件,事情可以正常工作,但不适用于图像如何在执行PHP时使用base64进行动态编码“preg_replace”
关键的想法是在base64中对它们进行经典编码,并使用atob()
进行解码。我不知道如果PHP能够在执行正则表达式时使用base64编码图像(?)
如果是的话,那可以解释我没有得到任何结果。如果没有,如果有人可以花一点时间来帮助我理解下面说明的问题,那将会非常好。
分析器(PHP):
$content = file_get_contents('myfile.js');
$pattern = '/__image\[(.*)\]__/i';
$url = '$1';
$complete = preg_replace($pattern, base64_encode(file_get_contents($url)), $content);
echo json_encode($complete);
客户端侧控制器(JS):
:其中包含该呼叫到图象(JS)... //result of an ajax call
content = JSON.parse(responseText);
eval(content); //data are safe
文件
config.design = { logo : { ... }, image : { ... background : background : 'url(data:image/jpg;base64,__image[css/images/logo/logo.jpg]__)' }, baseline : { ... } };
结果:
background-image: url(data:image/jpg;base64,); //[Error] Failed to load resource ... (kCFErrorDomainCFNetwork erreur -10). (data:image/jpg;base64,false, line 0)
我想你想可能是什么['preg_replace_callback'(https://php.net/manual/en/function.preg-replace-callback.php) 。 – Passerby 2015-04-04 04:41:34
不知道那个功能,我现在检查一下 – 2015-04-04 04:43:22