转换字符串中的base64内容
Convert base64 contents in a string
这是我的问题 (PHP),我有一个可能是这样的字符串 :
$var = 'Hello, hello, hello <img src="data:image/png;base64,lkqhdklqbhjdkhlqjshdljhqsdhqslkjhdlqhdjlkqshdjlkhsq"> hello hello <img src="data:image/png;base64,ljshqflhsqjlkfhjqsfjlkqhs"> jhfqflsqjk';
而且我想转换在 var $var 中遇到的每一个 base64 图像。但我不知道,我该怎么做...特别是,一种切割字符串以仅隔离 img 标签的方法。
我只想做一个函数,它以 var $var 作为参数
$var = 'Hello, hello, hello <img src="data:image/png;base64,lkqhdklqbhjdkhlqjshdljhqsdhqslkjhdlqhdjlkqshdjlkhsq"> hello hello <img src="data:image/png;base64,ljshqflhsqjlkfhjqsfjlkqhs"> jhfqflsqjk';
然后给我:
return "Hello, hello, hello <img src="firstImage.jpg"/> hello hello <img src="secondImage.jpg"/> jhfqflsqjk";
以 jpg 或 png 格式
这里是一个使用正则表达式的例子,但是如果你正在解析一个完整的 HTML 文档,最好使用 DOM 来解析 HTML 然后你就可以走了文档处理图片标签。
这是使用正则表达式的示例:
<?php
$var = 'Hello, hello, hello <img src="data:image/png;base64,lkqhdklqbhjdkhlqjshdljhqsdhqslkjhdlqhdjlkqshdjlkhsq"> hello hello <img src="data:image/png;base64,ljshqflhsqjlkfhjqsfjlkqhs"> jhfqflsqjk';
if ( ($c = preg_match_all('/<img.*?src=(?:\'|")?data:image\/(?:png|jpeg|jpg|gif);base64,([^\'"\s>]+)/i', $var, $matches)) > 0 ) {
for ($i = 0; $i < $c; ++$i) {
$data = base64_decode($matches[1][$i]);
if ($data) {
// successfully base64 decoded
}
}
}
演示:https://regex101.com/r/vA1tT4/1
This answer 也可能有帮助。希望这能让你前进。
这是我的问题 (PHP),我有一个可能是这样的字符串 :
$var = 'Hello, hello, hello <img src="data:image/png;base64,lkqhdklqbhjdkhlqjshdljhqsdhqslkjhdlqhdjlkqshdjlkhsq"> hello hello <img src="data:image/png;base64,ljshqflhsqjlkfhjqsfjlkqhs"> jhfqflsqjk';
而且我想转换在 var $var 中遇到的每一个 base64 图像。但我不知道,我该怎么做...特别是,一种切割字符串以仅隔离 img 标签的方法。
我只想做一个函数,它以 var $var 作为参数
$var = 'Hello, hello, hello <img src="data:image/png;base64,lkqhdklqbhjdkhlqjshdljhqsdhqslkjhdlqhdjlkqshdjlkhsq"> hello hello <img src="data:image/png;base64,ljshqflhsqjlkfhjqsfjlkqhs"> jhfqflsqjk';
然后给我:
return "Hello, hello, hello <img src="firstImage.jpg"/> hello hello <img src="secondImage.jpg"/> jhfqflsqjk";
以 jpg 或 png 格式
这里是一个使用正则表达式的例子,但是如果你正在解析一个完整的 HTML 文档,最好使用 DOM 来解析 HTML 然后你就可以走了文档处理图片标签。
这是使用正则表达式的示例:
<?php
$var = 'Hello, hello, hello <img src="data:image/png;base64,lkqhdklqbhjdkhlqjshdljhqsdhqslkjhdlqhdjlkqshdjlkhsq"> hello hello <img src="data:image/png;base64,ljshqflhsqjlkfhjqsfjlkqhs"> jhfqflsqjk';
if ( ($c = preg_match_all('/<img.*?src=(?:\'|")?data:image\/(?:png|jpeg|jpg|gif);base64,([^\'"\s>]+)/i', $var, $matches)) > 0 ) {
for ($i = 0; $i < $c; ++$i) {
$data = base64_decode($matches[1][$i]);
if ($data) {
// successfully base64 decoded
}
}
}
演示:https://regex101.com/r/vA1tT4/1
This answer 也可能有帮助。希望这能让你前进。