| |
|
|
| | Перебираю все подряд страницы в папке. При этом точное число страниц мне неизвестно, а потому я построил вот такой код:
// ПЕРЕБИРАЕМ ВСЕ СТРАНИЦЫ СООБЩЕНИЙ
// $nom_str Номер страницы
for ($nom_str = 1; $nom_str <=10000; $nom_str++)
{
$adr_str = "htm/" . $nom_str . ".htm" ; // Адрес страницы
$buff_text = file_get_contents($adr_str); // Открываем страницу
if (!$buff_text) break;
}
|
Перебор идет до тех пор, пока не сформируется адрес несуществующей страницы, которую невозможно открыть. Вцелом код выполняет возложенную на него задачу, но при завершении дает сообщение "Warning: file_get_contents(htm/101.htm): failed to open stream: No such file or directory in w:\home\news-rss\www\899.php on line 66", которое для пользователя совершенно неуместно!
Можно ли как-то убрать это сообщение?
Или решить эту же задачу более корректно, без умышленного создания ошибки? | |
| |
|
|
| |
|
|
| |
для: Владимир55
(09.07.2007 в 15:51)
| | | Вообще вывод любых сообзщений такого рода нежелателен. Чтобы это предотвратить можно просто воспользоваться функцией error_reporting(0). | |
| |
|
|
| |
|
|
| |
для: parczynski
(09.07.2007 в 15:57)
| | | Отличная мысль - взял в свою копилку хороший решений. Спасибо! | |
| |
|
|
| |
|
|
| |
для: Владимир55
(09.07.2007 в 15:51)
| | | А папка на вашем хосте?
....
$buff_text = @ file_get_contents($adr_str); // Открываем страницу
....
|
| |
| |
|
|
| |
|
|
| |
для: Poison
(09.07.2007 в 15:59)
| | | Да, папка у меня!
Так классно получилось - спасибочки! | |
| |
|
|
| |
|
|
| |
для: Владимир55
(09.07.2007 в 16:12)
| | | Если папка у вас=)
<?
$dir = 'htm/'
if ( $handle = opendir($dir) ) {
while ( ($file = readdir($handle)) !== false ) {
if ( $file != "." && $file != ".." ) {
if ( is_file($dir . $file) ) {
$buff_text = file_get_contents($dir . $file); // Открываем страницу
if ( !$buff_text ) { break; }
}
}
}
closedir($handle);
}
?>
|
| |
| |
|
|
| |
|
|
| |
для: Poison
(09.07.2007 в 16:18)
| | | Красиво...
Чувствуется рука профессионала!
Читая такие коды, я ощущаю себя просто кустарем... | |
| |
|
|
| |
|
|
| |
для: Владимир55
(09.07.2007 в 20:26)
| | | /* Мысли вслух */
Хм...А совет по поводу того, что нельзя использовать file_get_contents() для таких случаев, нафиг удалили? | |
| |
|
|
| |
|
|
| |
для: Владимир55
(09.07.2007 в 15:51)
| | | Я всё же отвечу на вопрос в теме.
Справедливое, но локально нежелательное диагностическое сообщение, без уменьшения чувствительности к промахам программиста, можно убить единственным способом. Символом @ поставленным перед вычислением выражения, в котором ожидается диагностируемая ситуация. | |
| |
|
|
| |
|
|
| |
для: Владимир55
(09.07.2007 в 15:51)
| | | хм... если в этой папке только страницы, то можно поступить так
<?php
$dir = opendir (".");
while ( $file = readdir ($dir)){
if (( $file != ".") && ($file != "..")){
echo "$file<br>";
}
}
closedir ($dir);
?>
|
P.S. код взят с учебника
яб написал так :)
<?php
$dir = opendir (".");
readdir ($dir);
readdir ($dir);
while ( $file = readdir ($dir)){
echo "$file<br>";
}
closedir ($dir);
?>
|
| |
| |
|
|
| |
|
|
| |
для: CrazyAngel
(10.07.2007 в 05:08)
| | | Супер!
А почему оператор
указан дважды? | |
| |
|
|
| |
|
|
| |
для: Владимир55
(10.07.2007 в 11:18)
| | | Понял - повтором снимаются ".." | |
| |
|
|