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

Статус
В этой теме нельзя размещать новые ответы.

асс

Мой дом здесь!
Регистрация
13 Окт 2006
Сообщения
762
Реакции
230
Уважаемые коллеги
есть такая головоломка
задача состоит в том чтоб в текстовую страничку впихнуть сылки вида
HTML:
<a href=сайт>описание</a>

Что то типа
PHP:
<?php
$links="<a href=сайт>описание</a>";//ссылка

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

Кто нить может подсказать
как это реализовать.
 
если "описание" - это одно слово, то просто делаем explode по пробелам, проходимся по массиву, нужные слова заменяем ссылками.
а если "описание" - это целая фраза, то тут хз, надо думать

так что именно надо?
 
если "описание" - это одно слово, то просто делаем explode по пробелам, проходимся по массиву, нужные слова заменяем ссылками.
а если "описание" - это целая фраза, то тут хз, надо думать

так что именно надо?

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

к примеру есть 4 ссылки
скрпитом по всему контенту раскинуть их
в таком порядке
 
ну тогда делим весь текст по точкам (explode(".", $text))
и между предложениями рандомно вставляем нужные ссылки
 
Вот написал небольшой скрипт на эту тему.
В корне надо создать две папки - в одна для файлов с текстами, другая, для файлов с сылкими.
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($fp, 1024); 	   
	}
    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>
В форме подставте название страницы))
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху