php: хотите создать изображение с помощью текста в браузере, используя ajax или onclick - PullRequest
0 голосов
/ 11 июля 2019

хочу создать изображение, используя текст.

Я генерирую текст из файла CSV.Затем я хочу создать изображение, нажав на один из текста.Я использую AJAX, чтобы установить изображение в соответствии с кликом.но я не понимаю, что для возврата к заданному изображению, пожалуйста, предложите мне изменения или скрипт для его реализации.Фрагмент моего кода:

index.php: -

<style>
    .excrec {
        margin: 15px;
        cursor: pointer;
    }
</style>

<?php

$file_path =  'csvfile.csv';
if (($handle = fopen($file_path, "r")) !== FALSE) {
    $i=0;
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {

         if(empty($data)){ continue; }  

         if($i>0){

             $excRec = $data[0].', '.$data[1].', '.$data[2];
             echo '<div id='.$i.' class="excrec">'.$excRec.'</div>';                 
         }    
         $i++;
    }
    fclose($handle);
}else{
    echo "Oops! something went wrong";
}
?>

<br><br>
<img src="" id="showimg">

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>
    jQuery(document).on('click','.excrec',function (event) {  
        event.preventDefault();

        var text = $(this).html();
        $('#showimg').attr("src", "text2img.php?text=" + text);
    });
</script>

txt2img.php: -

 <?php
  $text = $_GET['text'];

  $recimg = imagecreate(200, 80);
  $background  = imagecolorallocate($recimg, 400, 40, 45);
  $text_colour = imagecolorallocate($recimg, 140, 140, 140);
  imagestring($recimg, 4, 30, 25, $text, $text_colour);
  imagesetthickness($recimg, 5);

  header("Content-type: image/png");
  imagepng($recimg);
  imagecolordeallocate($text_color);
  imagecolordeallocate($background); 
  imagedestroy($recimg);

  //what we return to set image
?> 

оба файла находятся в одной папке, включая файл CSV ..

пожалуйста, предложите мне закомментированные строки ..

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