getBytes()
- это метод EncodedImage
, а не изображения. Закодированное изображение может отображаться в PNG или JPEG и является подклассом Image
. Вы можете использовать методы EncodedImage.create*()
для прямой загрузки EncodedImage
или преобразования существующего изображения в EncodedImage
:
EncodedImage e = EncodedImage.createFromImage(img, false);
Второй аргумент указывает, должен ли он стать PNG или JPEG. Если изображение содержит прозрачные / полупрозрачные пиксели, используйте PNG. Если изображение является фотографией, используйте JPEG.
Вы можете использовать функцию sprintf
:
$filter = "content:%1$s title:%1$s^4.0 path.title:%1$s^4.0 description:%1$s ...";
$filter = sprintf($filter, "Cheese");
Или вы можете написать свою собственную функцию для замены {
i
}
соответствующим аргументом:
function format() {
$args = func_get_args();
if (count($args) == 0) {
return;
}
if (count($args) == 1) {
return $args[0];
}
$str = array_shift($args);
$str = preg_replace_callback('/\\{(0|[1-9]\\d*)\\}/', create_function('$match', '$args = '.var_export($args, true).'; return isset($args[$match[1]]) ? $args[$match[1]] : $match[0];'), $str);
return $str;
}
попробуйте этого, если существует ошибка или 'create_function'
public static function format()
{
$args = func_get_args();
$format = array_shift($args);
preg_match_all('/(?=\{)\{(\d+)\}(?!\})/', $format, $matches, PREG_OFFSET_CAPTURE);
$offset = 0;
foreach ($matches[1] as $data) {
$i = $data[0];
$format = substr_replace($format, @$args[$i], $offset + $data[1] - 1, 2 + strlen($i));
$offset += strlen(@$args[$i]) - 2 - strlen($i);
}
return $format;
}
, я нашел его от здесь