$files = array( 'mashina.txt', 'mashina2.txt' ); if (is_array($files) && count($files)) { foreach ($files as $file) { if (!file_exists($file)) { continue; } $data = file($file); if (is_array($data) && count($data)) { $tmp_arr = array(); foreach ($data as $key => $value) { if (preg_match('#([0-9])#', $value, $matches)) { $tmp_arr[$key] = $matches[1]; } } if (count($tmp_arr)) { asort($tmp_arr); $new_arr = array(); foreach ($tmp_arr as $key => $value) { $new_arr[] = $data[$key]; } if (@file_put_contents($file, implode('', $new_arr))) { echo 'File '.$file.' - SUCCESS<br>'; } else { echo 'File '.$file.' - ERROR<br>'; } } unset($data); } } }
Спасибо. Скрипт рабочий, но выводит не верно.
123
187
1
190
11
а должен вывести вот так:
(.*)(\d)
\2\1\2
Зачем удалять цифры, если они нужны те, которые стоят там? :)
Мне нужно рассортировать грубо говоря дески по цифрам: от 1 до 1000
Сначала скрипт ищет деск в котором есть цифра 1 и ставит его ан первое место, далее ищет 2, на второе и т д
Удалять ничего не нужно, только в порядке возрастания рассортировать строки, в которых есть цифры:
2
3
4
В notepad++ с помощью регулярных выражений - не получается.
Может как-то на php?
Отлично. Огромное спасибо! :)
Спасибо.
Cкажи пожалуйста куда эти строчки вставить.
$string = "Test: mashina, mashina, mashina end";$index = 0;$newstring = preg_replace_callback( '@mashina@', function($match) use (&$index) { $index++; return ($match[0] . $index); }, $string );echo $newstring;
В ssh ввёл команду: php done.php (в done.php - код, вывело, но это ведь никак не приспособишь)
Дело в том, что все изменения нужно сделать в файлайх.html
Нужно как-то в поле внести название файла в котором будет замена (zamena.html к примеру). Далее уже к слову mashina там должны быть дозаписаны цифры.
echo implode("\n", $text);
Спасибо!
Не подскажешь, может есть ещё более простой вывод последовательных цифр после слов в php?
К примеру раскиданы в документе слова key,...key,..key - нужно заменить последовательно key1,key2,key3
<?php function isPageExists($pageId) { $isExists = false; // тут у тебя проверка существует такая страница или нет return $isExists; } // генерирует путь к файлу кеша function getCacheFilePath($pageId) { return 'cache/'.$pageId; } // проверяет есть ли страница в кеше function isPageInCache($pageId) { $cacheFilePath = getCacheFilePath($pageId); return is_readable($cacheFilePath); } // возвращает содержимое файла кеша function getPageFromCache($pageId) { $cacheFilePath = getCacheFilePath($pageId); return file_get_contents($cacheFilePath); } // сохраняет страницу в кеш function savePageToCache($pageId, $html) { $cacheFilePath = getCacheFilePath($pageId); $dir = dirname($cacheFilePath); if (!is_dir($dir)) mkdir($dir, 0755, TRUE); return file_put_contents($cacheFilePath, $html); } // генерируем уникальный Id страницы $pageId = md5(json_encode($_REQUEST)); if (!isPageExists($pageId)) { // страница не существует, значит надо кешировать if (isPageInCache($pageId)) { // если есть страница в кеше // читаем её из кеша $html = getPageFromCache($pageId); } else { // Если страницы нет в кеше // генерируем страницу ob_start(); ?> Some page contents, current time <?=date('H:i:s');?> <?php $html = ob_get_clean(); // сохраняем в кеш savePageToCache($pageId, $html); } echo $html; // и выводим }
Огромное спасибо, протестирую.
В page.html идёт генерация десков и кейвордов. Что бы каждый раз поисковику не открывалась страница с новым контентам, хотел бы я кэшировать не существующие страницы.
Спасибо, взял ssd уже.. )