Скрипт линейки в подписи

Тема в разделе "PHP", создана пользователем winews, 29 мар 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. winews

    winews Постоялец

    Регистр.:
    25 мар 2009
    Сообщения:
    49
    Симпатии:
    2
    не хочет выводить правильный путь на картинку и не кэширует ее

    кто знает в чем суть ?

    вот три файла

    index.php
    PHP:
    <?
    $lines=glob("lines/*.gif");
    $begs=glob("begs/*.gif");
    ?>

    <?
    if(isset($_GET['l'])):?>
    вот url  для линейки<br>

    <?$d=mktime(0,0,0,$_GET['m'],$_GET['d'],$_GET['y'])?>

    http://<?=$_SERVER['HTTP_HOST']?>/lin.ru/line_<?=$_GET['l']?>_beg_<?=$_GET['b']?>_time_<?=$d?>_text_<?=base64_encode($_GET['t'])?>.jpg
             <br>
    или BB код             <br>

    [url=http://<?=$_SERVER['HTTP_HOST']?>][img]http://<?=$_SERVER['HTTP_HOST']?>/lin.ru/line_<?=$_GET['l']?>_beg_<?=$_GET['b']?>_time_<?=$d?>_text_<?=base64_encode($_GET['t'])?>.jpg[/img][/url]
    <?else:?>
    <form method=get>
    Линейка <br>
    <?foreach($lines as $line):?>
    <input name="l" type="radio" value="<?=basename($line)?>"> <img src="<?=$line?>" border=0><br>
    <?endforeach?>
    Бегунок  <br>
    <?foreach($begs as $beg):?>
    <input name="b" type="radio" value="<?=basename($beg)?>"> <img src="<?=$beg?>" border=0><br>
    <?endforeach?>
     Текст<br>
    <input name="t" type="text" value="" id=tx>   <br>
    Или выберите <select onchange="document.getElementById('tx').value=this.options[this.selectedIndex].value">
    <?foreach(file('slova.txt') as $sl):?>
      <option value="<?=$sl?>"><?=$sl?></option>
    <?endforeach?>

    </select><br>


    Дата начала<br>
    <SELECT NAME="d">
    <OPTION SELECTED VALUE=1>1
    <OPTION  VALUE=2>2
    <OPTION  VALUE=3>3
    <OPTION  VALUE=4>4
    <OPTION  VALUE=5>5
    <OPTION  VALUE=6>6
    <OPTION  VALUE=7>7
    <OPTION  VALUE=8>8

    <OPTION  VALUE=9>9
    <OPTION  VALUE=10>10
    <OPTION  VALUE=11>11
    <OPTION  VALUE=12>12
    <OPTION  VALUE=13>13
    <OPTION  VALUE=14>14
    <OPTION  VALUE=15>15
    <OPTION  VALUE=16>16
    <OPTION  VALUE=17>17
    <OPTION  VALUE=18>18
    <OPTION  VALUE=19>19
    <OPTION  VALUE=20>20
    <OPTION VALUE=21>21
    <OPTION  VALUE=22>22
    <OPTION  VALUE=23>23
    <OPTION  VALUE=24>24
    <OPTION  VALUE=25>25

    <OPTION  VALUE=26>26
    <OPTION  VALUE=27>27
    <OPTION  VALUE=28>28
    <OPTION  VALUE=29>29
    <OPTION  VALUE=30>30
    <OPTION  VALUE=31>31
    </SELECT>
    &nbsp;Месяц:<SELECT NAME="m">
    <OPTION SELECTED VALUE=1>Январь
    <OPTION  VALUE=2>Февраль
    <OPTION  VALUE=3>Март
    <OPTION  VALUE=4>Апрель
    <OPTION  VALUE=5>Май
    <OPTION  VALUE=6>Июнь
    <OPTION  VALUE=7>Июль
    <OPTION  VALUE=8>Август

    <OPTION  VALUE=9>Сентябрь
    <OPTION  VALUE=10>Октябрь
    <OPTION  VALUE=11>Ноябрь
    <OPTION  VALUE=12>Декабрь
    </SELECT>
    &nbsp;Год:<INPUT TYPE="text" NAME="y" size=5 value="<?=date('Y')?>"><BR>
    <input type="submit" value="Дальше">
    </form>
    <?endif?>

    img.php
    PHP:
    <?
    function 
    win2uni($s)
    {
    $s convert_cyr_string($s,'w','i'); // преобразование win1251 -> iso8859-5
    // преобразование iso8859-5 -> unicode:
    for ($result=''$i=0$i<strlen($s); $i++) {
      
    $charcode ord($s[$i]);
      
    $result .= ($charcode>175)?"&#".(1040+($charcode-176)).";":$s[$i];
    }
    return 
    $result;
    }

    header("Content-type: image/jpeg");

    $line=imagecreatefromgif('lines/'.$_GET['l']);
    $beg=imagecreatefromgif('begs/'.$_GET['b']);
    $text=base64_decode($_GET['t']);

    $line_sx=imagesx($line);
    $line_sy=imagesy($line);

    $beg_sx=imagesx($beg);
    $beg_sy=imagesy($beg);

    $out_h=($line_sy<$beg_sy)?$beg_sy:$line_sy;
    $out=imagecreate($line_sx,$out_h+15);

    imagecopy($out,$line,0,$out_h-$line_sy ,0,0,$line_sx,$line_sy);

    $pixpm=$line_sx/12;
    $std=$_GET['d'];
    $ed=time();

    $sid=3600*24;
    $sim=3600*30*24;

    $sty=mktime(0,0,0,0,0,date('Y',$std));
    $offset=$ed-$std;
    $days=intval($offset/86400);
    $monsz=0;
    while(
    $days>30)
    {
        
    $monsz++;
           
    $days=$days-30;
    }

    $beg_x=$monsz*$pixpm;

    imagecopy($out,$beg,$beg_x,5,0,0,$beg_sx,$beg_sy);

    if(
    $beg_x<$line_sx)
    imagefttext($out,10,0,10,$out_h+10,imagecolorallocate($out,0,0,0),'arial.ttf',
    win2uni($text.' '.$monsz.' месяцев и '.$days.' дней'.' (c) Zumo' ));
    else
    imagefttext($out,10,0,10,$out_h+10,imagecolorallocate($out,0,0,0),'arial.ttf',
    win2uni('нет лошадки'));

    imagejpeg($out);
    ?>
    .htaccess
    PHP:
    RewriteEngine on
    RewriteBase 
    /
    RewriteRule ^line_([a-z_0-9\.\-]{3,40})_beg_([a-z_0-9\.\-]{3,40})_time_([0-9]{5,15})_text_(.*)\.jpgimg.php?l=$1&b=$2&d=$3&t=$[R]
     
  2. serjinio

    serjinio

    Регистр.:
    10 май 2007
    Сообщения:
    439
    Симпатии:
    49
    Попробуйте проставить слэши типа
    'lines/'.$_GET['l']
    '/lines/'.$_GET['l']
    и
    HTML:
    RewriteRule ^line_([a-z_0-9.-]{3,40})_beg_([a-z_0-9.-]{3,40})_time_([0-9]{5,15})_text_(.*).jpg$ img.php?l=$1&b=$2&d=$3&t=$4 [R]  
    
    RewriteRule ^line_([a-z_0-9\-]{3,40})_beg_([a-z_0-9\-]{3,40})_time_([0-9]{5,15})_text_(.*)\.jpg$ img.php?l=$1&b=$2&d=$3&t=$4 [R,L]  
     
  3. Dev1l

    Dev1l Создатель

    Регистр.:
    27 сен 2008
    Сообщения:
    10
    Симпатии:
    4
    cкрипт не пашет:confused:! картинку выводит, текст тоже, но дата на постой "2 месяца и 5 дней":(
     
  4. artpol

    artpol Писатель

    Регистр.:
    23 мар 2009
    Сообщения:
    4
    Симпатии:
    0
    я пробовал данный скрипт, тоже долго промучился с ним, но правда у меня заработало все. Покопаюсь в закромах, если найду скину архив рабочий :)
     
  5. machao

    machao Писатель

    Регистр.:
    16 май 2009
    Сообщения:
    4
    Симпатии:
    0
    http://buratino.tv/dfdgjgjfjdfsdjjdfj.zip, есть похожий скрипт, но у него криво подпись выводится на изображение (или кракозябры непонятные или вообще ничего). помогите плиз выровнять его. у меня руки под php слабо заточены к сожалению :(

    Добавлено через 9 минут
    этот скрипт не метрик-робин случАем? я с ним тоже пытался воевать, и знакомых подключал, но с лошадкой, которую унесло ветром на... совладать не смогли к сожалению :(
     
Статус темы:
Закрыта.