Определение конкретных символов из ввода текста - PullRequest
0 голосов
/ 03 февраля 2010

Оригинальное название :
для чтения и подсчета вхождения только ограниченных символов A, G, C, T, присутствующих во входном текстовом файле, например, только 100 из 500, и рисования тонкого вертикального прямоугольника штрих-кода изображениями с использованием gd

Он считывает и считает только первые 10 символов и рисует изображение штрих-кода вместо указанных 100 символов.

<?php
$file="co3.txt";
$handle=fopen($file, 'r');

$A=0;
$G=0;
$C=0;
$T=0;

$img = imagecreate(850,80);
$white = imagecolorallocate($img, 255,255,255);
$green=imagecolorallocate($img, 0, 128, 0);
$black=imagecolorallocate($img, 0, 0, 0);
$red=imagecolorallocate($img, 255, 0, 0);
$blue=imagecolorallocate($img, 0, 0, 255);

$x1=40;
$y1=40;
$x2=43;
$y2=80;

$contents = '';

#while(( ($contents=fread( $handle, 100)) !='')) {
while(( ($contents=fread($handle, 100)) )) {
for ($i=0; $i<=100; $i++)

{

  if($contents[$i] == 'A')
{

$A++;
imagefilledrectangle($img, $x1, $y1, $x2, $y2, $green);
$x1 = $x1+6;
$x2 = $x2+6;

}

else
if($contents[$i] == 'G')

{

$G++;
imagefilledrectangle($img, $x1, $y1, $x2, $y2, $black);
$x1 = $x1+6;
$x2 = $x2+6;

}

else
if($contents[$i] == 'C')

{

$C++;
imagefilledrectangle($img, $x1, $y1, $x2, $y2, $blue);
$x1 = $x1+6;
$x2 = $x2+6;

}

else
if($contents[$i] == 'T')

{

$T++;
imagefilledrectangle($img, $x1, $y1, $x2, $y2, $red);
$x1 = $x1+6;
$x2 = $x2+6;

header("Content-type: image/png");
imagepng($img);
imagedestroy($img);
}

}

}

?>

1 Ответ

0 голосов
/ 03 февраля 2010

Я предполагаю, что вы не только первые 10 букв, но и до того момента, когда T найден. Затем неуместный фрагмент, производящий изображение, выводит это изображение. Цикл может продолжаться до 100, производя, возможно, еще несколько изображений (с каждым новым T), но я не знаю поведение PHP в таких случаях, так как некоторые ответы HTTP легко записываются ...

В качестве альтернативы вы можете видеть последний этих изображений. В любом случае, исправив неуместное

header("Content-type: image/png");
imagepng($img);
imagedestroy($img);

вещи должны начать выглядеть больше, чем ожидалось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...