 
			
				31.07.2017, 10:29
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.12.2012 
					
					
					
						Сообщений: 3,841
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от Stenli
			 
		
	 | 
 
	| 
		как сделать, чтобы не оборачивался код в комментарии.
	 | 
 
	
 
 Попробовал затолкать в textarea php-код, код закомментирован браузером не был, комментирование произошло при попытке разместить код в теге «pre». 
Опишите более детально, что вы пытаетесь сделать, вероятно есть более простое и  правильное решение задачи.
 
Оборачивать даты в php-код на стороне клиента по меньшей мере смешно.
 
$string='Some 31.07.2017 date';
    echo preg_replace('#(\d{2}.\d{2}.\d{4})#uim','<div class="some-class">$1</div>',$string);
    exit;
    //Result: Some <div class="some-class">31.07.2017</div> date
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				31.07.2017, 10:32
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.01.2015 
					
					
					
						Сообщений: 12,989
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от Nexus
			
		
	 | 
 
	| 
		Оборачивать даты в php-код на стороне клиента по меньшей мере смешно.
	 | 
 
	
 
 Это же самое справедливо и для серверной стороны, дату нужно получать и вставлять в шаблон как переменную.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				31.07.2017, 10:57
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.12.2012 
					
					
					
						Сообщений: 3,841
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 laimas, я не понял сути задачи, которая стоит перед вопрощающим, однако, если задачей является обернуть все даты в тексте в тег, то извлекать все даты из строки, помещать их в переменные (массив), оборачивать их в тег, после вставлять в шаблон в виде переменной... ну это как-то глупо, что ли.  
Я бы так точно делать не стал. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				31.07.2017, 11:04
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.01.2015 
					
					
					
						Сообщений: 12,989
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от Nexus
			
		
	 | 
 
	| 
		если задачей является обернуть все даты в тексте в тег, то извлекать все даты из строки, помещать их в переменные (массив), оборачивать их в тег, после вставлять в шаблон в виде переменной... ну это как-то глупо, что ли.
	 | 
 
	
 
 То есть парсить при каждом выводе текст это не глупо? Данному товарищу, насколько я понял, написали код, в котором он не в редакторе пытается нечто изменить, а посредством формы, отсюда и ноги проблемы.
 
Если также верить тому, что мне сказали, то исходный код полный бред, а всякие вставки посредством preg_replace для постоянной замены дат в тексте скорректированной текущей датой, еще более бредовый подход. Нужна оперативность замены, можно и в файле переменные прописать которые уже можно редактировать через форму. А в шаблон они должны подставляться обычным способом - вывод переменной.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				31.07.2017, 11:19
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.12.2012 
					
					
					
						Сообщений: 3,841
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от laimas
			 
		
	 | 
 
	| 
		а всякие вставки посредством preg_replace для постоянной замены дат в тексте скорректированной текущей датой, еще более бредовый подход.
	 | 
 
	
 
 Про корректировку даты в тексте я не писал, с цитируемым согласен полностью. 
Если целью является постоянная "актуализация" даты, то да, тут правильным будет юзать переменные.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				31.07.2017, 11:29
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.01.2015 
					
					
					
						Сообщений: 12,989
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от Nexus
			
		
	 | 
 
	| 
		Про корректировку даты в тексте я не писал
	 | 
 
	
 
 Это в теме есть и мне так писали.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				31.07.2017, 19:18
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 25.06.2017 
					
					
					
						Сообщений: 36
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от Nexus
			 
		
	 | 
 
	
		Попробовал затолкать в textarea php-код, код закомментирован браузером не был... 
 
Оборачивать даты в php-код на стороне клиента по меньшей мере смешно.
	 | 
 
	
 
 Попробую снова как-то с другой стороны зайти - пошагово описать. Только прошу вас очень: правильность обращения и вызова даты не комментируйте. Я понял ваше отношение - смешно, неправильно, хрень и т.д.
 
1. Я создал для себя страничку на локальном компе index.html - это моя страничка на моем компе и больше ею никто не пользуется - я клиент в этом случае для сервера и один единственный. 
2. На этой страничке есть три (всего три) элемента: textarea с id="insertArea", textarea с id="pastArea", button с id="sendTo" 
3. В textarea первое я вставляю HTML-код одностраничника со всеми тегами, переносами, списками , это понятно из названия id этого поля. 
4. Нажимаю кнопку с id="sendTo", которая запускает jQuery. 
5. jQuery обрабатывает текст, ищет выражения  /\d{2}\.\d{2}\.\d{4}/g (даты) и заменяет их на  <?= date('d.m.Y', strtotime('-3 day'));?> 
6. Когда он заменит все даты в HTML-коде, он выгружает результат во второе textarea, у которого тоже говорящее id. 
7. Я копирую измененный код из второго поля и вставляю его обратно в одностраничник.  
8. Выгружаю одностраничник на сервер, где на него могут зайти все кто желает. Внутри одностраничника есть php-код, который обрабатывается сервером и выдает клиенту HTML-код с датой сдвинутой на -3.
 
Так вот, обработка jQuery, как вы говорите на стороне клиента нужна мне. Мне,  Stenli, чтобы вставить php-код в HTML-код лендинга. Все остальные посетители не будут видеть этот php-код, они будут видеть дату.
 
Проблема возникает на 5-м пункте. Здесь почему-то то ли jQuery, то ли браузер добавляют комментарии к php-коду вида  <!-- -->
Еще раз HTML:
 
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <link rel="stylesheet" type="text/css" href="assets/css/bootstrap/bootstrap.min.css">
    <link rel="stylesheet" type="text/css" href="assets/css/main.css">
    <script type="text/javascript" src="assets/js/jquery-3.2.1.min.js"></script>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script type="text/javascript" src="assets/js/bootstrap.min.js"></script>
    <script type="text/javascript" src="assets/js/preland.js"></script>
    <title>Preland convert</title>
</head>
<body>
<div class="container">
    <div class="row">
            <div class="text-center" style="margin-top: 20px;">
                <button type="button" name="sendTo" value="Send to" id="sendTo" class="btn btn-success">Адаптировать</button>
            </div>
            <div class="text-center" style="font-size: 12px; margin: 10px;">Каждый новый текст требует обновления страницы (F5 на клавиатуре или кнопка обновить <span class="glyphicon glyphicon-repeat"></span>)</div>
            <hr />
            <div class="col-lg-8">
                <label>Введите html-текст, который нужно адаптировать (правая кнопка мыши + вставить или Ctrl+V)</label>
                <textarea class="form-control" name="insertArea" id="insertArea" cols="80" rows="10"></textarea>
            </div>
            <div class="col-lg-8" style="margin-top: 10px;">
                <label>Скопируйте/вырежьте адаптированный html-текст (правая кнопка мыши + копировать или Ctrl+C/X)</label>
                <textarea class="form-control" name="pastArea" id="pastArea" cols="80" rows="10"></textarea>
            </div>
            <br>
    </div>
</div>
</body>
</html>
И еще разок jQuery
 
$(document).ready(function() {
    var Final = '';
    $('#sendTo').on('click', function () {
        //var insertData = $('#insertArea').val();
        //
        var bodyVal = $('#insertArea').val();
        bodyVal = bodyVal.substring(bodyVal.indexOf('<body>')+6, bodyVal.lastIndexOf('</body>')).trim();
        var div = $("<div>", {html : bodyVal});
// replace dates
        var reg = /\d{2}\.\d{2}\.\d{4}/g;
        $(div).html(function (i,h) {
                return h.replace(reg, '<?=date(' + 'd.m.Y' + ', strtotime(' + '-3 day' + '));?>');
        });
// display result
        Final += div.html();
        $('#pastArea').val(Final);
    });
});
И да, спасибо за терпение, мужики. Да, Бог с ним, и laimas тоже спасибо.  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось Stenli, 31.07.2017 в 19:36.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				01.08.2017, 11:11
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.12.2012 
					
					
					
						Сообщений: 3,841
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Stenli, jQuery дважды подключается чтобы наверняка?)
 
$(document).ready(function() {
    var Final = '';
    $('#sendTo').on('click', function () {
        //var insertData = $('#insertArea').val();
        //
        var bodyVal = $('#insertArea').val();
        bodyVal = bodyVal.substring(bodyVal.indexOf('<body>')+6, bodyVal.lastIndexOf('</body>')).trim();
		
		// replace dates
        var reg = /\d{2}\.\d{2}\.\d{4}/g;
		bodyVal=bodyVal.replace(reg, '<?=date(' + 'd.m.Y' + ', strtotime(' + '-3 day' + '));?>');
		// display result
        Final += bodyVal;
        $('#pastArea').val(Final);
    });
});
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				09.08.2017, 03:13
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 25.06.2017 
					
					
					
						Сообщений: 36
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Разрешите продолжить в рамках топика. 
Я решил немного изменить схему добавления "чего-либо" вместо даты. Поэтому вместо  '<?=date(' + 'd.m.Y' + ', strtotime(' + '-3 day' + '));?>', у меня будет добавляться  '{{ $date_shift[v] }}'
Но не просто так. Хочу, чтобы с каждой следующей обнаруженной датой изменялось значение  [v]. Причем по рандому оно должно либо не изменяться (да-да), либо изменяться на 1 (единичку).
 
Пока насоображал такую схему:
 
var reg = /\d{2}\.\d{2}\.\d{4}/g;
        var string = '{{ $date_shift[v] }}';
        var v=0;
        $(div).html(function (i,h) {
            for (var x=0 ; x <=i ; x++ ) {
                var randomShift = Math.random();
                if ( randomShift = 0 ) {
                    v = +1;
                }
                else {
                    v = +0;
                }
            return h.replace(reg, string);
            }
        });
Тупняк у меня наступил в момент, когда мне надо вставить новое значение [v] в переменную string. Ведь она передается как строка. Да и вообще я мог запросто намудрить ввиду своего начинающего уровня.
 
Подмозжите, чем можите... Спасибо.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				09.08.2017, 09:14
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.12.2012 
					
					
					
						Сообщений: 3,841
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Stenli,
 
if ( randomShift = 0 ) {
                    v = +1;
                }
                else {
                    v = +0;
                }
Во-первых, в строке 1 идет не сравнение переменной с числом, а присвоение значения этой самой переменной. Переменная станет равна нулю, а нуль всегда будет считаться за ложь (false). 
Во-вторых, Math.random() возвращает случайно десятичное число от 0 до 1. Вероятность того, что рандом вернет нуль крайне и крайне мала (даже можно сказать, что она стремится к нулю). 
В-третьих replace у вас должен выглядеть так:
 
h.replace(reg,'{{ $date_shift['+v+'] }}');
И вообще не понятно, что вы пытаетесь сделать, зачем все это?  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |