Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Пример с другого сайта который у меня не идет
Форумы портала PHP.SU » » Работа с файловой системой и файлами » Пример с другого сайта который у меня не идет

Страниц (2): [1] 2 »
 

1. Илья01 - 23 Августа, 2011 - 17:38:31 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. <html>
  2.    <head>
  3.    <title>Чтение из текстовых файлов</title>
  4.  
  5.    </head>
  6.    <body>
  7.  
  8.    <?PHP
  9.    $f = fopen("http://ru.html.net/tutorials/php/unitednations.txt", "r");
  10.  
  11.    // Читать построчно до конца файла
  12.    while (!feof($f)) {
  13.  
  14.    // Создать массив с запятой-разделителем
  15.       $arrM = explode(",",fgets($f));
  16.  
  17.    // Записать ссылки (получить данные из массива)
  18.       echo "<li><a href='http://' . $arrM[1] . "'>" . $arrM[0]. "</a></li>";
  19.  
  20.   }
  21.  
  22.   fclose($f);
  23.   ?>
  24.  
  25.    </body>
  26.    </html>


Этот пример не работает на моем сервере : vsevolod-s10.h19.ru/test.php Скажите пожалуйста, это пример левый или я что то не так делаю? Если дело в примере, скажите пожалуйста как его изменить чтобы работал? Заранее спасибо.
2. illy - 23 Августа, 2011 - 18:30:24 - перейти к сообщению
Кавычку пропустил
PHP:
скопировать код в буфер обмена
  1. <html>
  2. <head>
  3. <title>Чтение из текстовых файлов</title>
  4. </head>
  5. <body>
  6. <?PHP
  7. $f = fopen("http://ru.html.net/tutorials/php/unitednations.txt", "r");
  8. // Читать построчно до конца файла
  9. while (!feof($f)) {
  10. // Создать массив с запятой-разделителем
  11. $arrM = explode(",",fgets($f));
  12. // Записать ссылки (получить данные из массива)
  13. echo "<li><a href='http://$arrM[1]'>$arrM[0]</a></li>";
  14. }
  15. fclose($f);
  16. ?>
  17. </body>
  18. </html>
3. Илья01 - 23 Августа, 2011 - 18:49:34 - перейти к сообщению
Спасибо за ответ, но я эту ошибку уже сам нашел. Похоже пример имеет несколько ошибок, потому что исправив эту появилась новая. Изменения на Vsevolod-s10.h19.ru/test.php я внес. Помогите пожалуйста разобраться с новой напастью.
4. DeepVarvar - 23 Августа, 2011 - 18:57:35 - перейти к сообщению
Эти ф-ции предназначены для работы с локальной файловой системой (в основном).
Выкиньте этот пример - в нем используют то что не надо...

PHP:
скопировать код в буфер обмена
  1. $s = file_get_contents("http://ru.html.net/tutorials/php/unitednations.txt");
  2. $s = str_replace("\r","",$s);
  3. $s = explode("\n",$s);
  4. echo "<ul>";
  5. foreach ($s as $v) {
  6.   $link = explode(",",$v);
  7.   echo '<li><a href="http://'.$link[1].'">'.$link[0].'</a></li>';
  8.   }
  9. echo "</ul>";
5. Илья01 - 23 Августа, 2011 - 19:26:23 - перейти к сообщению
Странно, на этом сайте тоже есть примеры: http://php.net/manual/ru/function.fopen.php где эти функции используются НЕ для локальной файловой системы.
6. DeepVarvar - 23 Августа, 2011 - 19:28:17 - перейти к сообщению
DeepVarvar пишет:
(в основном)
7. Илья01 - 23 Августа, 2011 - 19:35:31 - перейти к сообщению
Возможно я туплю, но я вас не очень понял, если эти функции в основном заточены под локальную файловую систему то они с файлами из сети тоже могут работать? Просто на странице где я нашел этот пример: http://ru[dot]html[dot]net/tutorials/php/lesson15.php есть еще и "Отображение примера" и оно работает Не понял
8. DeepVarvar - 23 Августа, 2011 - 19:39:18 - перейти к сообщению
Илья01 пишет:
и оно работает

Дело в том, что по сети нельзя запрашивать так играючи данные кусками из любого места.
Все данные передаются пакетами. Я в своем примере предложил прочитать сразу весь контент и разобрать его на месте - и это эффективнее чем ёрзать за каждой строкой по сети.
9. Мелкий - 23 Августа, 2011 - 19:47:16 - перейти к сообщению
DeepVarvar пишет:
и это эффективнее чем ёрзать за каждой строкой по сети.

Данные буферизуются. Так же как и на файловых операциях - мы можем читать по байту, но накопитель прочитает минимум 512 байт (1 сектор). Современные - и вовсе 4096 байт (1 физический сектор, 4 логических).
10. Илья01 - 23 Августа, 2011 - 19:54:10 - перейти к сообщению
Мелкий пишет:
Дело в том, что по сети нельзя запрашивать так играючи данные кусками из любого места.

Я так и не понял, если запрашивать данные кусками они будут медленней читаться, вообще не прочитаются, а вылетит ошибка как у меня или с одного сервера прочитаются, а с другого нет, но это уже совсем не важно. Я только позавчера начал изучать html и не очень хорошо разбираюсь, я так и не понял что в моем коде заменить вашем. Можно чуточку по подробней пример
11. Мелкий - 23 Августа, 2011 - 20:11:55 - перейти к сообщению
Илья01 пишет:
Я только позавчера начал изучать html

Так кто мешает? А PHP тут при чём?

Илья01 пишет:
я так и не понял что в моем коде заменить вашем.

Кроме синтаксической ошибки в 18 строке? Ничего. Он работает.
А вот на вашем сервере не прописан DNS-резолвер. И скрипт, закономерно, не может найти IP (hostname nor servname provided, or not known), по которому ему обращаться.

В общем - поставьте на локальную машину веб-сервер, к которому у вас будет полный контроль.
12. DeepVarvar - 23 Августа, 2011 - 20:56:44 - перейти к сообщению
Мелкий пишет:
Данные буферизуются.......
Я пытаюсь объяснить проще, опуская детали. Да и всеравно эффективнее прочитать все сразу и разбирать на месте. Для этого примера уж точно.
13. Илья01 - 23 Августа, 2011 - 21:45:16 - перейти к сообщению
DeepVarvar пишет:
Так кто мешает? А PHP тут при чём?

Под html я имел все вместе, и html и css и php
(Добавление)
Мелкий пишет:
В общем - поставьте на локальную машину веб-сервер, к которому у вас будет полный контроль.

Я бы не хотел этого делать т. к. хочу сделать сайт чтоб он был выложен уже в интернете. Может есть способ доступа к файлом с этого сервера как нибудь по другому? Например как предложил DeepVarvar?
14. Мелкий - 23 Августа, 2011 - 22:07:29 - перейти к сообщению
Илья01 пишет:
Может есть способ доступа к файлом с этого сервера как нибудь по другому?

Аж целых 2:
0) сменить хостера
1) ручками делайте HTTP-запрос, соединяясь на заранее узнанный IP и передавайте host. В помощь RFC 1945, RFC 2616 (стандарты HTTP)

Илья01 пишет:
хочу сделать сайт чтоб он был выложен уже в интернете.

Какой сайт на первой недели знакомства даже с HTML? О чём это вы?
15. Илья01 - 24 Августа, 2011 - 01:35:55 - перейти к сообщению
Мелкий пишет:
Какой сайт на первой недели знакомства даже с HTML? О чём это вы?

Один мой приятель своему знакомому сказал что я не плохо разбираюсь в программировании что в общем то правда, но я неплохо с purebasic-ом, да с pascal-ом, а вот с программированием сайтов познакомился позавчера. Вот знакомый моего приятеля и заказал мне навороченный сайтик для его маленького бизнеса. И закончить мне его надо до этого воскресения.
Мелкий пишет:
сменить хостера

Это мне ближе, сейчас попробую еще погуглить какой нибудь бесплатный и с поддержкой DNS-резолвера.
(Добавление)
2 с половиной часа роюсь и мало что нашел, можно чуть по подробнее насчет:
Мелкий пишет:
ручками делайте HTTP-запрос, соединяясь на заранее узнанный IP и передавайте host. В помощь RFC 1945, RFC 2616 (стандарты HTTP)

 

Powered by ExBB FM 1.0 RC1