[php] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. Gho_st

    Gho_st Elder - Старейшина

    Joined:
    24 Jun 2005
    Messages:
    79
    Likes Received:
    9
    Reputations:
    3
    такая проблема
    пользую функции imagettftext()
    для генерации текста на картинке

    проблема в том что вместо русских символов отображаются неведомые мне закорючки
    побывал перекодировать строку =( эффекта никакого отображаются закорючки но уже другие
    need help

    з.ы. пользую шрифт arial.ttf стандартный видновый т.е. кириллицу поддреживает
     
  2. hhover

    hhover Elder - Старейшина

    Joined:
    21 May 2007
    Messages:
    60
    Likes Received:
    36
    Reputations:
    11
    PHP:
    function toUnicodeEntities($text$from="w")
    {
     
    $text convert_cyr_string($text$from"i");
     
    $uni "";
     for (
    $i=0$len=strlen($text); $i<$len$i++)
     {
      
    $char $text{$i};
      
    $code ord($char);
      
    $uni .= ($code>175)? "&#" . (1040+($code-176)) . ";" $char;
     }
     return 
    $uni;
    }
    Вот такая функция перекодировки должна работать.
     
    1 person likes this.
  3. Ni0x

    Ni0x Elder - Старейшина

    Joined:
    27 Aug 2006
    Messages:
    338
    Likes Received:
    157
    Reputations:
    37
    Gho_st, сначала нужно конвертировать твой текст в unicode.
    http://articles.org.ru/cfaq/index.php?qid=1876&frommostrecent=yes
     
  4. spamoney

    spamoney Elder - Старейшина

    Joined:
    26 Dec 2006
    Messages:
    120
    Likes Received:
    7
    Reputations:
    1
    Есть файл с цитатами
    quote.txt, цитаты пронуменованы от 001 до 961, их нужно как то запихнуть в базу данных, в БД такие поля:

    quoteid author email date name cat quote rating ratingtot ratings


    Можно ли написать такой скрипт, что бы каждую цитату заносил в поле quote, а quoteid присваивался 690 + номер цитаты в файле qupte.txt (просто в БД уже имеется 690 цитат) Ну и что бы я мог указать остальные значения полей(для каждой из цитат они будут одинаковыми)
     
    #204 spamoney, 8 Jul 2007
    Last edited: 8 Jul 2007
  5. GoreMaster

    GoreMaster Elder - Старейшина

    Joined:
    28 May 2007
    Messages:
    119
    Likes Received:
    32
    Reputations:
    4
    В каком виде они храняться в этом txt файле?
     
  6. spamoney

    spamoney Elder - Старейшина

    Joined:
    26 Dec 2006
    Messages:
    120
    Likes Received:
    7
    Reputations:
    1
    001.ТекстТекстТекстТекстТекст
    -ТекстТекстТекст
    -ТекстТекст

    002.ТекстТекстТекстТекстТекстТекст

    003.ТекстТекстТекстТекстТекстТекстТекстТекстТекст
    ТекстТекстТекстТекстТекстТекстТекстТекст

    Вот в таком примерно......
     
  7. Raz0r

    Raz0r Elder - Старейшина

    Joined:
    7 Jan 2007
    Messages:
    126
    Likes Received:
    20
    Reputations:
    0
    ты точно напиши
    а не примерно
     
  8. spamoney

    spamoney Elder - Старейшина

    Joined:
    26 Dec 2006
    Messages:
    120
    Likes Received:
    7
    Reputations:
    1
    Code:
    001.  You're alive. Do something. The directive in life, the moral imperative was so uncomplicated. It could be expressed in single words, not complete sentences. It sounded like this: Look. Listen. Choose. Act.
    
    .   .   .
    
    002.  The first step to getting the things you want out of life is this: Decide what you want.
    
    .   .   .
    
    003.  Oh, life is a glorious cycle of song,
    A medley of extemporanea; 
    And love is a thing that can never go wrong; 
    And I am Marie of Romania.
    
    .   .   .
    
    004.  It's not true that life is one damn thing after another; it is one damn thing over and over.
    
    .   .   .
    
    005. Life is as tedious as a twice-told tale 
    Vexing the dull ear of a drowsy man.
    
    .   .   .
    
    006.  A wretched soul, bruised with adversity,
    We bid be quiet when we hear it cry; 
    But were we burdened with like weight of pain,
    As much or more we should ourselves complain.
    
    .   .   .
    
    007.  And since you know you cannot see yourself,
    so well as by reflection, I, your glass,
    will modestly discover to yourself,
    that of yourself which you yet know not of.
    Думаю сначала нужно будет с помощью граббера выбрать всё что находится между
    .

    . . .
    записать полученный результат в файл, так чтобы каждая цитата занимала только одну строку. При этом если кол-во строк в цитате больше одной, то скрипт должен вставлять тэг br
    т.е скрипт должен выбрать из

    Code:
    006.  A wretched soul, bruised with adversity,
    We bid be quiet when we hear it cry; 
    But were we burdened with like weight of pain,
    As much or more we should ourselves complain.
    
    .   .   .
    
    только

    Code:
    A wretched soul, bruised with adversity,
    We bid be quiet when we hear it cry; 
    But were we burdened with like weight of pain,
    As much or more we should ourselves complain.
    записав в файл это одной строчкой

    Code:
    A wretched soul, bruised with adversity,<_br>We bid be quiet when we hear it cry;<_br>But were we burdened with like weight of pain,<_br>As much or more we should ourselves complain.
    Ну а потом уже наверно будет несложно полученный файл засунуть в БД.
    Вот, может кто знает как это все реализовать?
     
    #208 spamoney, 8 Jul 2007
    Last edited: 8 Jul 2007
  9. Raz0r

    Raz0r Elder - Старейшина

    Joined:
    7 Jan 2007
    Messages:
    126
    Likes Received:
    20
    Reputations:
    0
    Работаешь с файлом, делишь все на части и пишешь в БД.
    1. Открываешь сод. файла
    2. Отрезаешь все кроме текста
    PHP:
    $file split("\r\n.   .   .\r\n",$file);
    3. отрезаешь цифры
    4. работаешь с текстом
    5. пишешь в БД
     
  10. spamoney

    spamoney Elder - Старейшина

    Joined:
    26 Dec 2006
    Messages:
    120
    Likes Received:
    7
    Reputations:
    1
    A moshno po podrobnee, a to v php ia kak to ne o4en' razbiraus'. Esli pynkti 1,2,3,5 ya dymau smogy naiti kak sdelat' to pynkt 4 woobshe ne poniaten. P.S izweniaus' za translit-pishy s mobili
     
  11. Raz0r

    Raz0r Elder - Старейшина

    Joined:
    7 Jan 2007
    Messages:
    126
    Likes Received:
    20
    Reputations:
    0
    Работаешь с текстом - в плане - обработка, т.е. - убераем цифры 001. и оставляем только один текст, заменяем \n\r на <br>.можно помучать функцию обрезания :D (substr) и замены (str_replace).
     
  12. hhover

    hhover Elder - Старейшина

    Joined:
    21 May 2007
    Messages:
    60
    Likes Received:
    36
    Reputations:
    11
    spamoney,
    PHP:
    <?php

    //  Тут имя твоего файла.
    $fo fopen 'filename.txt''rb' );
    $text '';
    while ( ! 
    feof $fo ) )
    {
      
    $text .= fgets $fo );
    }
    fclose $fo );

    //  -------------------------------
    //
    //  Тут коннект к базе данных.
    //
    //  -------------------------------

    $array explode ".   .   ."$text );

    foreach ( 
    $array as $key => $quote )
    {
      
      
    $quote trim $quote );
      
    $quote substr $quote);
      
    $quote trim $quote );

      
    //  Поле quoteid должно быть auto_increment
      
    $query "insert into table (author, email, date, name, cat, quote, rating, ratingtot, ratings)
                values ('author', '[email protected]', "
    .time().", 'name', 'cat', '$quote', 0, 0)";
      
    $mysql_query mysql_query $query );

    }

    ?>
     
    1 person likes this.
  13. spamoney

    spamoney Elder - Старейшина

    Joined:
    26 Dec 2006
    Messages:
    120
    Likes Received:
    7
    Reputations:
    1
    hhover, огромное спасибо, всё работает
    только строчку
    PHP:
    $query "insert into table (author, email, date, name, cat, quote, rating, ratingtot, ratings) 
                values ('author', '[email protected]', "
    .time().", 'name', 'cat', '$quote', 0, 0)";
    заменил
    PHP:
    $query "INSERT INTO `table_quote` VALUES (NULL, 'spamoney', '[email protected]', now(), 'name', 'cat', '$quote', '0', '0', '0')";
     
  14. Helios

    Helios Elder - Старейшина

    Joined:
    14 Jan 2007
    Messages:
    414
    Likes Received:
    180
    Reputations:
    103
    Для предотвращения всяких непоняток с заменой переменных их значениями в строках с двойными кавычками рекомендуется делать так:

    PHP:

    $str 
    "bla bla bla{$war}bla";
    Если бы переменная не была выделена фигурными скобками, то для замены уже бы искалась переменная $warbla, а не $war.
     
  15. Gho_st

    Gho_st Elder - Старейшина

    Joined:
    24 Jun 2005
    Messages:
    79
    Likes Received:
    9
    Reputations:
    3
    есть строка текста
    с переносами ( \n )
    нужно посчитать сколько раз переноситься текст
    __

    блин вроде бы примитивная задача но что-то моим способом решить её не удается=((
     
  16. FreeNeDiX

    FreeNeDiX New Member

    Joined:
    1 Jun 2007
    Messages:
    15
    Likes Received:
    0
    Reputations:
    0
    Прив всем, нужно написать скрипт проверки доступности сайта.
    Вот только как это реализовать правильно я хз. (
     
  17. Dr.Frank

    Dr.Frank Elder - Старейшина

    Joined:
    31 Jul 2002
    Messages:
    301
    Likes Received:
    72
    Reputations:
    12
    Вобще-то вот так:
    PHP:
    $t="dsf\nads\ndf\n\ndsf\nrt"//Заданный текст
    $count=substr_count($t,"\n");
    Но можно извратиться... =):
    PHP:
    $t="dsf\nads\ndf\n\ndsf\nrt"//Заданный текст
    $r=explode("\n",$t);
    $count=count($r)-1;  // В переменной $count Будет количество переносов(кол-во символов "\n")
     
    #217 Dr.Frank, 12 Jul 2007
    Last edited: 12 Jul 2007
  18. Ni0x

    Ni0x Elder - Старейшина

    Joined:
    27 Aug 2006
    Messages:
    338
    Likes Received:
    157
    Reputations:
    37
    через сокет отправляй пакет get/post методом на индекс, далее поймешь по ответу сервера.
     
    1 person likes this.
  19. Ch3ck

    Ch3ck Elder - Старейшина

    Joined:
    9 Jun 2006
    Messages:
    1,363
    Likes Received:
    1,191
    Reputations:
    430
    Да любой функцией обратиться к этому сайту... вот и всё...например
    PHP:
    <?php
    error_reporting
    (0);
    $host="forum.antichat.ru";
    $f fsockopen($host80);
    fwrite($f"GET / HTTP/1.0\nHost: $host\n\n");
    $str fread($f1024);
    echo (
    $str.'<br><br><br>');
    if (
    substr($str,9,6)=="200 OK")
    {
           echo(
    "ВСЁ ПРЕКРАСНО");
                  }
    else {
         echo(
    "ВСЁ НЕПРЕКРАСНО");
       }
    fclose($f);
    ?>
    Кажется так...
     
    #219 Ch3ck, 12 Jul 2007
    Last edited: 12 Jul 2007
    1 person likes this.
  20. Helios

    Helios Elder - Старейшина

    Joined:
    14 Jan 2007
    Messages:
    414
    Likes Received:
    180
    Reputations:
    103
    Если на запрашиваемом сервере вирт.хостинг и крутится туева хуча доменов, то этот скрипт будет всегда говорить, что сайт в дауне. Плюс не на каждом сайте есть страница index.html.

    Нужно немного переделать:
    PHP:
    ...
    fwrite($f"GET / HTTP/1.0\nHost: yandex.ru\n\n");
    ...
     
    1 person likes this.
Thread Status:
Not open for further replies.