[Ищу] Ссылки в тексте

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

Armany

Знаток
Регистрация
10 Мар 2008
Сообщения
181
Реакции
28
Добрый день! Чем можно реализовать следующее:
есть кусок текста и есть ссылки вида <a>анкор</a> <a>анкор2</a>, необходимо чтобы перемешало данные ссылки в тексте и вместо анкоров сгенерило какой-то текст типа "qwesda" "iooipip"
 
Для перемешивания KeywordKeeper, для остального надо скрипт писать.
 
да просто перемешать не проблема, даже в тексте перемешать не проблема, как бы сгенерировать для списка ссылок случайные слова
 
Попроси любого кодера, за пару-тройку вмз накатают скрипт, если так нужен.
 
Armany, приведи конкретный пример списка ссылок и конкретный пример того, что ты хочешь получить на выходе. Или ссылки действительно вида <a>text</a>? Тогда вообще просто - генерить определенное количество рандомных строк, обрамленных <a> и </a>. Писать 2 минуты :)
 
Armany, приведи конкретный пример списка ссылок и конкретный пример того, что ты хочешь получить на выходе. Или ссылки действительно вида <a>text</a>? Тогда вообще просто - генерить определенное количество рандомных строк, обрамленных <a> и </a>. Писать 2 минуты :)

смотри, у меня есть ссылки вида
<a href=http://site.com>tttteret</a>
<a href=http://site.com>gjhgjh</a>
<a href=http://site.com>treyrtwye</a>

нужно чтобы на выходе получилось следующее:
есть текст текст текст <a href=http://site.com>вместо анкора генеренный какой-то текст</a>текст текст текст текст текст текст текст текст<a href=http://site.com>вместо анкора генеренный какой-то текст</a>текст текст текст текст текст текст текст текст <a href=http://site.com>treyrtwye</a>текст текст текст текст
 
В общем, если замешивать линки в тексте не проблема и ключевой момент - изменение анкоров, то есть 2 варианта решения задачи: изменять анкоры на случайную последовательность символов до вставки их в текст, или уже после размешивания в тексте. Я пока сделал вариант "до вставки в текст". Саму вставку в текст не делал - там есть дополнительные вопросы. Так что пока держи скрипт, который возьмет все ссылки из файла links.txt, поменяет им анкоры на набор случайных символов и положит в result.txt. Набор символов можешь менять как угодно - изменяя переменную $chars в функции rand_str($length).
PHP:
<?php
  $links = file("links.txt");
  $pattern = '/(<a.*?>)(.*?)(<\/a\s*>)/i';
  foreach ($links as $k => $v ) {
  	$replacement = '$1'.rand_str(mt_rand(5,10)).'$3';
  	$new_links[] = preg_replace( $pattern, $replacement, trim($v));
  }
  file_put_contents("result.txt", implode("\r\n", $new_links));
  function rand_str( $length ){
  	$chars = 'qwertyuioplkjhgfdsazxcvbnm';
  	for ($i = 0; $i < $length; $i++) {
  		$string .= $chars[mt_rand(0, strlen($chars)-1)];
  	}
  	return $string;
  }
?>
 
молодчина, в принципе уже данный вариант можно использовать. Огромное спасибо.

Добавлено через 2 минуты
В общем, если замешивать линки в тексте не проблема и ключевой момент - изменение анкоров, то есть 2 варианта решения задачи: изменять анкоры на случайную последовательность символов до вставки их в текст, или уже после размешивания в тексте. Я пока сделал вариант "до вставки в текст". Саму вставку в текст не делал - там есть дополнительные вопросы. Так что пока держи скрипт, который возьмет все ссылки из файла links.txt, поменяет им анкоры на набор случайных символов и положит в result.txt. Набор символов можешь менять как угодно - изменяя переменную $chars в функции rand_str($length).
супер, спасибо тебе добрый человек!
 
В общем, если замешивать линки в тексте не проблема и ключевой момент - изменение анкоров, то есть 2 варианта решения задачи: изменять анкоры на случайную последовательность символов до вставки их в текст, или уже после размешивания в тексте. Я пока сделал вариант "до вставки в текст". Саму вставку в текст не делал - там есть дополнительные вопросы. Так что пока держи скрипт, который возьмет все ссылки из файла links.txt, поменяет им анкоры на набор случайных символов и положит в result.txt. Набор символов можешь менять как угодно - изменяя переменную $chars в функции rand_str($length).

еще такой вопросец, не мог бы сделать чтобы твой скриптик был на странице где есть два тексовых поля и кнопка обработать, типа:

|______________|

|______________| и кнопка | обработать |

чтобы в первое поле вставил ссылки, нажал на кнопку обработать и результат забрал во втором поле уже обработанные, ну это уже как пожелание, если не трудно.
 
PHP:
<html>
<head>
  <title>Anchor's randomizer</title>
</head>
<body>
<?php
	if (@$_POST['go'] == 'Start' ) {
	  $source_links = $_POST['sourceLinks'];
	  $links = explode("\n", $source_links);
	  $pattern = '/(<a.*?>)(.*?)(<\/a\s*>)/i';
	  foreach ($links as $k => $v ) {
    	  $replacement = '$1'.rand_str(mt_rand(5,10)).'$3';
	      $new_links[] = preg_replace( $pattern, $replacement, trim($v));
	  }
	  $result = implode("\n", $new_links);
	}
	function rand_str( $length ){
		  $string = '';
    	  $chars = 'qwertyuioplkjhgfdsazxcvbnm';
	      for ($i = 0; $i < $length; $i++) {
    	      $string .= $chars[mt_rand(0, strlen($chars)-1)];
	      }
    	  return $string;
	}
?>
    <div align="center">
		<form name="main" action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
			<textarea name="sourceLinks" rows=20 cols=40><?php echo stripslashes(@$source_links)?></textarea>
			<textarea name="resultLinks" rows=20 cols=40><?php echo stripslashes(@$result)?></textarea><br /><br />
			<input type="submit" value="Start" name="go">
		</form>
    </div>
</body>
</html>
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху