Таков вопрос есть к примеру текст И есть файл ankors.text Вот думаю как можно написать скрипт что бы он находил в текте слова, которые являются анкорами из файла ankors.txt и заменял слово на ссылку... Пока не каких идей не пришло в голову..
PHP: <?php $txt="Хорошо живет на свете винни пух, несмотря на то что он странный друг и любит кататься на роликах. Пусть он живет вечно в наших сердцах, настолько больших что ими можно расколоть мешок орехов."; $links=array_map('rtrim',file("ankors.txt")); $links_for_replacement=Array(); $words_to_replace=Array(); foreach($links as $link) { if(!$link) continue; preg_match("/>(.+)</",$link,$word); if(!isset($word[1])) continue; $links_for_replacement[]=$link; $words_to_replace[]=$word[1]; } $txt=str_replace($words_to_replace, $links_for_replacement, $txt); print $txt; ?> Замена будет регистрозависимой в этом случае, т.е. "Пух" и "пух" - два разных слова.
Zircool, PHP: preg_match_all('#<a href[^>]*>([^<]*)<\/a>#i',file_get_contents('ankors.txt'),$ankors); $text=str_ireplace($ankors[1],$ankors[0],$text); echo $text; Минус - регистр символов будет нарушаться
PHP: <? for($i = 1;$i < 100;$i++) { echo $i."<br>"; } ?> Этот код выводит от 1 до 100 но выводит значиния все сразу на страницу, а надо сделать, чтоб вывод был по одному значению, а не сразу. Как это можно реализовать? заранее благодарен.
UnPazz все прально, мну тож до сих пор не понятно почму так сделали, preg_match выводит в массив, $word[0] - то что те надо
shellz[21h] с таймаутом надо чтоле? дык эта, пхп серверный, имхо не получится так, если тока браузер будет выводить содержимое соединения постепенно, тогда надо echo $i."<br>"; sleep(5); //в секундах ЗЫ или делай на яваскрипте
При запуске скрипта, скрипт грузится но результатов не выдает... после окончания цикла, скрипт выдает результат. А нужно чтоб в процессе цикла выводился результат. Возможно вообще такое на php реализовать или нет. Хотелось бы увидеть примеры. Всем заранее спасибо.
PHP: <? php set_time_limit(0); for($i = 1;$i < 100;$i++) { echo $i."<br>"; ob_flush(); flush(); sleep(1); } ?>
Почему функция strtolower не работает на хосте на денвере все работет а на хост заливаешь буквы не переводятся в нижний регистр, есть ли ещё какие нибудь функции аналогичные strtolower?
Используй фунцию PHP: mb_strtolower ('Текст','Кодировка текста'); у меня такая же фигня была, когда основная кодировка была в win-1251, а передовалось в UTF-8, и из-за этого не работала strtolower
Code: <?php $array1 = array("1", "2", "aa","22222"); $array2 = array("2", "1", "red"); $result = array_intersect($array1, $array2); var_dump($result); //повторения echo count($result);//ну и количество ?>
как понял задача состоит что бы узнать сколько повторяющихся значений в одном масиве. Ну так накидал, вроде работает PHP: $array = array('Этот','вопрос','приходит','ко','всем','приходит','вопрос','приходит','Этот','вопрос','ЖИЗНИ'); $array_tmp = array(); $array_tmp_2 = array(); foreach ($array as $index) { if(in_array($index,$array_tmp)) { $array_tmp_2[$index] = $array_tmp_2[$index] + 1; } else { $array_tmp[] = $index; $array_tmp_2[$index] = 0; } } echo '<pre>Масив состоит из этих частей:<br>'; print_R($array_tmp); echo 'Части масива сколько раз повторяются:<br>'; print_r($array_tmp_2); Результат такой Масив состоит из этих частей:
Вроде как mb_*** функции по умолчанию в php не встроены, поэтому можно ещё в начале скрипта прописать PHP: setlocale(LC_ALL,'ru_RU.CP1251'); после чего можно использовать обычную strtolower().
PHP: <?php $a = array(); $dup = count($a)-count(array_unique($a)); echo 'Количество дубликатов: '.$dup; ?>
$str = file_get_contents('text.txt'); $result = preg_match_all('/[zzz][0-9]"/',$str,$found); foreach( $found as $s) { echo $s."\n"; }