2010-05-05 2 views
0
<?php 

require_once 'wordwrap.php'; 
$text="Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum"; 
$im=imagecreatefrompng('testing.png'); 
$arr=word($text); 
$white = imagecolorallocate($im,255,255,255); 
$grey = imagecolorallocate($im, 128, 128, 128); 
$font='arial.ttf'; 
$m=121; 
for($i=0;$i<sizeof($arr);$i++) 
{ 

    //imagettftext($im,12,0,11,$m+$t,$grey,$font,$arr[$i]); 
//echo $arr[$i]."<br/>"; 

} 
header('Content-type: image/png'); 
imagepng($im); 
imagedestroy($im); 
?> 

Я получаю ошибку.Невозможно изменить информацию заголовка - заголовки уже отправлены

Warning: Cannot modify header information - headers already sent by (output started at /home2/puneetbh/public_html/prideapp/Testing/wordwrap.php:33) in /home2/puneetbh/public_html/prideapp/Testing/checkimage.php on line 16 
‰PNG ��� IHDR�� ��ô���J"Þ/�� �IDATxœì¼KvÉŽ%ŠŸ}Ü)EfäjÕxÝËÇ›nE^)Èãn?�Õ€J‘UÕ~ß --ŠKä>ƒÛàÆ7nܸqãÆ7nܸqãÆ7nܸqãÆ7nܸqãÆ7nܸqãÆ7nܸqãÆ7nܸqãÆ7nܸqãÆ7nܸqãÆ7nܸqãÆ7nܸqãÆ7nܸqãÆ7nܸqãÆ7nܸqãÆ7nܸqãÆ7nܸqãÆ7nܸqãÆ7nܸqãÆ7nܸqãÆ7nܸqãÆ7nܸqãÆ7nܸqãÆ7nܸqãÆ7nܸqãÆ7nܸqãÆ7nܸqãÆ7nܸqãÆ7nܸqãÆ7nܸqãÆ7nܸqãÆ7nܸqãÆ7nܸqãÆ 
+0

Какая линия это говорит ошибка на? –

+0

, пожалуйста, научитесь копировать полное сообщение об ошибке, а не его часть. Вы также можете прочитать его - это довольно ясно. –

ответ

3

Ваш файл wordwrap.php не должен выводить байт. Но он печатает что-то в 33-й строке. Вы можете проверить эту строку и посмотреть, что произошло.

Также рассмотрите возможность использования функции bulit-in PHP wordwrap() вместо включения какого-то странного кода.

Таким образом, сделать это следующим образом:

<?php 

#require_once 'wordwrap.php'; 
$text="Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum"; 
$im=imagecreatefrompng('testing.png'); 
$arr=explode("\n",wordwrap($text,24,"\n")); 
$white = imagecolorallocate($im,255,255,255); 
$grey = imagecolorallocate($im, 128, 128, 128); 
$font='arial.ttf'; 
$m=121; 
for($i=0;$i<sizeof($arr);$i++) 
{ 

    //imagettftext($im,12,0,11,$m+$t,$grey,$font,$arr[$i]); 
//echo $arr[$i]."<br/>"; 

} 
header('Content-type: image/png'); 
imagepng($im); 
imagedestroy($im); 
?> 
+0

24) \t { \t \t $ Str = зиЬзЬг ($ штук [$ я], 0,24); \t \t $ text = $ text. $ Str. ":". Substr ($ pieces [$ i], 24, strlen (str)); \t \t \t } \t \t еще \t { \t \t, если (STRLEN ($ штук [$ я])> $ spaceleft) \t \t {\t \t \t \t $ spaceleft = 24; \t \t \t $ text = $ text. ":".$ штук [$ я]; \t \t \t} \t \t еще \t \t { \t \t \t $ spaceleft = $ spaceleft- (StrLen ($ штук [$ я]) + 1); \t \t \t $ text = $ text. $ Pieces [$ i]. ""; \t \t}} \t \t } $ р = взорваться (":", $ текст); return $ p; } ?> – goblin2986

+0

это моя функция wordwrap. – goblin2986

+0

@bhaskaragr Я не вижу здесь линии 33. Но просто не используйте его вообще. используйте код, который я добавил –

0

очередь буферизации вывода для изменения заголовка ->http://php.net/manual/en/function.ob-start.php

написать это поверх ваш код.

 
ob_start(); 
+1

Это массовое чрезмерное убийство, которое работает только вокруг проблемы. Было бы гораздо лучше * исправить * проблему вместо этого. – meagar

+0

Upvoted, буферизация вывода - прекрасный метод для определенных проблем, и выделение его существует вполне разумно, особенно если разработчик не сталкивался с этим раньше. – dmp

+0

После странного поведения моей системы я не могу найти пустое пространство, ничего и никоим образом не перенаправлял, тогда мой обходной путь был примерно таким:> echo ' '; Это действительно работает! Это не лучшее решение, но после многих хлопот, потому что простая переадресация не работает, я придумал это. – B4NZ41

2

Удостоверьтесь, что нет пробелов или возвращается до <?php. Также, если ваш файл закодирован как UTF-8, убедитесь, что он без спецификации

+0

no Я работаю в кодировке ANSI. – goblin2986

Смежные вопросы