1. Задавайте здесь вопросы о коде, которые не подходят в другие разделы, такие как:
    Дизайн > Верстка
    PHP > Как сделать на PHP
    Скрыть объявление

Как разбить ссылки по тексту

Тема в разделе "Web Coding", создана пользователем асс, 19 мар 2008.

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

    асс

    Регистр.:
    13 окт 2006
    Сообщения:
    756
    Симпатии:
    221
    Уважаемые коллеги
    есть такая головоломка
    задача состоит в том чтоб в текстовую страничку впихнуть сылки вида
    HTML:
    <a href=сайт>описание</a>
    Что то типа
    PHP:
    <?php
    $links
    ="<a href=сайт>описание</a>";//ссылка

    $text="Здесь текст";//текст  контент
    echo $text;/*Здесь нужно вывести текст с разбакленными ссылками*/
    // Можно выводить ссылку через нное  количество строк.
    например на кажой третьей строке вывод ссылок
    ?>
    Кто нить может подсказать
    как это реализовать.
     
  2. ozware

    ozware

    Регистр.:
    22 апр 2007
    Сообщения:
    327
    Симпатии:
    42
    если "описание" - это одно слово, то просто делаем explode по пробелам, проходимся по массиву, нужные слова заменяем ссылками.
    а если "описание" - это целая фраза, то тут хз, надо думать

    так что именно надо?
     
  3. асс

    асс

    Регистр.:
    13 окт 2006
    Сообщения:
    756
    Симпатии:
    221
    Нужно в текст страницы вкрапливать ссылки
    слова ссылками не надо заменять
    я мог их другой функцией заменить
    Мне надо именно вкрапливать в тексте ссыки
    чтоб я сам их не вставлял например
    во всему тексту на сайте.
    Скриптом текст в масив можно в принципе
    так же можно разбивать текст explode
    но нужно просто как в доргенах
    можно рандомно ссылки раскидать

    к примеру есть 4 ссылки
    скрпитом по всему контенту раскинуть их
    в таком порядке
     
  4. ozware

    ozware

    Регистр.:
    22 апр 2007
    Сообщения:
    327
    Симпатии:
    42
    ну тогда делим весь текст по точкам (explode(".", $text))
    и между предложениями рандомно вставляем нужные ссылки
     
  5. асс

    асс

    Регистр.:
    13 окт 2006
    Сообщения:
    756
    Симпатии:
    221
    Я тож думаю что так делать
     
  6. rex1963

    rex1963

    Регистр.:
    19 фев 2007
    Сообщения:
    228
    Симпатии:
    47
    Вот написал небольшой скрипт на эту тему.
    В корне надо создать две папки - в одна для файлов с текстами, другая, для файлов с сылкими.
    PHP:
    <?php
    //данные из формы
    $text_dir $_POST['text'];
    $lincks_dir $_POST['lincks'];
    $procent $_POST['procent'];
    //работаем с текстом
    $fp=fopen($_SERVER['DOCUMENT_ROOT']."/text/".$text_dir"r");

    $text="";
       while (!
    feof($fp)) 
        { 
          
    $text .= fgets($fp1024);        
        }
        
    fclose($fp); 
    //работа с линками
    $links = array();
    $handle fopen($_SERVER['DOCUMENT_ROOT']."/lincks/".$lincks_dir"r");
    while(!
    feof($handle)) { 
      
    $str fgets($handle);
      
    $str=trim($str);
      if(empty(
    $str)) continue;
      
    $links[] = $str;
    }
    fclose($handle);


    $arr=split(" "$text);
    $spacenum=count($arr); //считаем слова
    $numlink=(int)$procent*$spacenum/100//получаем число ссылок для данного куска текста
    //  заменяем
    for ($i=0;$i<$numlink$i++)
    {
    $pos=strpos($text," ",mt_rand(0,strlen($text))); //получаем случайную позицию куда вставить линк
    $text=substr_replace($text,"&nbsp;".$links[rand(0,count($links)-1)]."&nbsp;",$pos,1);
    //вставляем линк в эту позицию
    }
    echo 
    $text;  

    ?>

    <FORM  method=post action="primer.php">
    Ссылки:&nbsp;<br>
                <?php
                $a
    =array();
                if (
    $handle opendir('./lincks')) {
                    while (
    false !== ($file readdir($handle))) {
                        if (
    $file != "." && $file != ".." && is_file('./lincks/'.$file)) {
                            
    $a[]=$file;
                        }
                    }
                    
    closedir($handle);
                }
                
    ?>
                <select name="lincks">
                        <?php while(list($k,$v)=each($a)) {?>
                        <option value="<?php print $v;?>"><?php print $v;?></option>
                        <?php ?>
                    </select><br><br>
        Текст:&nbsp;<br><br>
                <?php
                $a
    =array();
                if (
    $handle opendir('./text')) {
                    while (
    false !== ($file readdir($handle))) {
                        if (
    $file != "." && $file != ".." && is_file('./text/'.$file)) {
                            
    $a[]=$file;
                        }
                    }
                    
    closedir($handle);
                }
                
    ?>
                <select name="text">
                        <?php while(list($k,$v)=each($a)) {?>
                        <option value="<?php print $v;?>"><?php print $v;?></option>
                        <?php ?>
                    </select>

    Процент линков от объема текста&nbsp;&nbsp;&nbsp;
                         <select name="procent">
                         <?php
                         
    for($i=1;$i<21;$i++)
                         {echo
    "<option value=\"".$i."\"";
                          if(
    $procent==$i) echo" selected";
                          echo
    ">".$i."</option>";
                         }
                         
    ?>
    </select>
    <input type="submit" value="применить">
    </FORM>    
    В форме подставте название страницы))
     
    асс нравится это.
Статус темы:
Закрыта.