Подстановка текста через php рандомизатор

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

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

    212 Создатель

    Регистр.:
    31 авг 2007
    Сообщения:
    39
    Симпатии:
    0
    Есть парсер... типа
    PHP:
    $handle fopen('http://site.ru/index.php?act=' $act '&CODE=' $CODE '&f=' $f '&t=' $t '&view=' $view '&showuser=' $showuser'r'); 
    while (!
    feof($handle)) 

    $html .= fread($handle4096); 

    $begin '<html>'
    $end '</html>'
    $beginloc strpos($html$begin) + strlen($begin); 
    $endloc strpos($html$end); 
    $html substr($html$beginloc$endloc $beginloc);
    $html=str_replace("http://site.ru/""http://site2.com/"$html);
    $html=str_replace("download.gif""download.gif title="$file file('rand_text.txt'); echo $file[rand(0, (count($file)-1))];""$html); /// вот эта шняга отказываеться работать!!
    echo $html;
    echo 
    "</html>";
    $html=str_replace("download.gif", "download.gif title="$file = file('rand_text.txt'); echo $file[rand(0, (count($file)-1))];"", $html); /// вот эта шняга отказываеться работать!!
    то ей трусы мешают.. то скобки не те... как можно из файла рандомно текст в этом случае подставлять??
     
  2. a1ien.n3t

    a1ien.n3t Постоялец

    Регистр.:
    12 июл 2008
    Сообщения:
    52
    Симпатии:
    7
    PHP:
    $file file('rand_text.txt');
    $rnd=$file[rand(0, (count($file)-1))];
    echo 
    $rnd;
    $html=str_replace("download.gif""download.gif title=".$rnd $html); /// както так.
    Зачем лепить все в одну строку?
    если почистить то что я написал то получиться като-так
    PHP:
    $file file('rand_text.txt');
    $html=str_replace("download.gif""download.gif title=".$file[rand(0, (count($file)-1))] , $html); /// както так.
     
  3. 212

    212 Создатель

    Регистр.:
    31 авг 2007
    Сообщения:
    39
    Симпатии:
    0
    получилось но не совсем... точнее вообще не получилось (((
    PHP:
    $file file('text.txt');
    $html=str_replace(".jpeg"".jpeg title=".$file[rand(0, (count($file)-1))] , $html);
    сделал чуть по другому... но суть та же
    он не рандомит текст... берёт на все картинки один текст... а должен из списка брать 100 разных..
    плюс ко всему неудалось поставить title="текст"
    без кавычек моно... но тогда высвечиваеться ток первое слово из фразы "чудо рандомизатор текста"
     
  4. tostrss

    tostrss

    Регистр.:
    16 окт 2007
    Сообщения:
    771
    Симпатии:
    217
    PHP:
    $file[rand(0, (count($file)-1))] 
    Правильно, ведь ты заменяешь конкретным элементом массива все замены.

    Воспользуйся функией preg_replace

    PHP:
    $html=preg_replace('%\.jpeg"%ie'"get_text('\\1')"$html); 
    function 
    get_text($string) {
        global 
    $file;
        
    $title $file[array_rand($file)];
        return 
    '.jpeg" title="'.$title.'"';
    }

    echo(
    $html);
     
    212 нравится это.
  5. 212

    212 Создатель

    Регистр.:
    31 авг 2007
    Сообщения:
    39
    Симпатии:
    0
    разобрался с горем пополам... видно лыжи не ехали )))
     
  6. 212

    212 Создатель

    Регистр.:
    31 авг 2007
    Сообщения:
    39
    Симпатии:
    0
    ещё вопросик образовался...
    как этот парсер пошустрее сделать.. притормаживает немного ... и боюсь что при наплыве юзеров будет грузить сервак сильно ?!((
     
  7. tostrss

    tostrss

    Регистр.:
    16 окт 2007
    Сообщения:
    771
    Симпатии:
    217
    Никак. Только сменить алгоритм. Например записывать изменения в кэш или прописывать титл в шаблоне.
     
  8. 212

    212 Создатель

    Регистр.:
    31 авг 2007
    Сообщения:
    39
    Симпатии:
    0
    PHP:
    return '.jpeg" title="'.$title.'"';
    при использовании такого формата выдаёт следующее
    ... image.jpeg" title="слово
    "
    как сделать чтоб закрывающая кавычка не переносилась??
     
  9. a1ien.n3t

    a1ien.n3t Постоялец

    Регистр.:
    12 июл 2008
    Сообщения:
    52
    Симпатии:
    7
    PHP:
    $title=str_replace("\n","",str_replace("\r","",$title));
    Добавить перед return '.jpeg" title="'.$title.'"';
     
    212 нравится это.
  10. Sanuch

    Sanuch

    Регистр.:
    25 май 2009
    Сообщения:
    207
    Симпатии:
    70
    а воспользоваться функцией trim не судьба?
     
Статус темы:
Закрыта.