Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Переписать вдребезги и напополам (VB -> php)

Сообщения:  [1-10]   [11-13] 

 
 автор: cheops   (16.09.2005 в 21:34)   письмо автору
 
   для: Lisnerpa   (16.09.2005 в 20:48)
 

Да PHP говорлив (правда степень его разговорчивости настраивается в конфигурационном файле php.ini), для того, чтобы подавить вывод таких предупреждений следует либо подавить вывод при помощи символа @ http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=4389,
<?php
  $df 
= @fopen ($fil_v,"r"); //открываем файл вариантов для голосования для чтения
?>

Либо проверить файл на существование перед окрытием при помощи функции file_exists() http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=5381
<?php
  
if(file_exists($fil_v))
  {
     
// Файл существует
  
}
  else
  {
    
// Файл не существует
  
}
?>

   
 
 автор: cheops   (16.09.2005 в 21:27)   письмо автору
 
   для: Lisnerpa   (16.09.2005 в 20:39)
 

PHP является С-подобным языком, т.е. оператор сравнения для него ==, а = используется для присваивания. Т.е. следует писать
<?php
  
if (substr($fvs,0,4) == "Тур:")
?>

Код
<?php
  
if ($l4 "Тур:")
?>

максирует ошибку, так как операция присваивания всегда возвращает TRUE.

PS Под новые вопросы, лучше заводить новые темы.

   
 
 автор: Lisnerpa   (16.09.2005 в 20:48)   письмо автору
 
   для: Lisnerpa   (15.09.2005 в 14:33)
 

Ну и про открытие файлов вопрос.

Есть желание в некоторой функции открыть файл, считать из него строки, проанализировать их и наполнить из них кое-какой информацией массивы.

Выполняю по книжке(как мне кажется):
function Vari_Inp($fil_v)
{
$df = fopen ($fil_v,"r"); //открываем файл вариантов для голосования для чтения
if(!$df) // если файл отсутствует
{
echo("Ошибка открытия файла.");
return ""; //возвращ.значение ""
}
//дальнейшее тело функции
}

Далее в программе пишем:
$v=Vari_Inp("C:\Program Files\VB_5\My_Proj\Dopis_Otr\DopOtr_Turs\Zadanie.txt");
echo($v);

Ошибок в коде не выдается.
Но при запуске кода на выполнение получается не совсем корректный результат.
Если файл существует - все работает как надо.
Но если задано несущ. имя файла, то вместо надписи "Ошибка открытия файла" получаем побольше слов:

Warning: fopen(C:\Program Files\VB_5\My_Proj\Dopis_Otr\DopOtr_Turs\Zadanie_2.txt) [function.fopen]: failed to open stream: No such file or directory in C:\www\www1\fun.php on line 5
Ошибка открытия файла.

От двух первых строк хотелось бы избавиться, раз уж такой вариант описан в коде.

Уверен, что и на эти вопросы вы ответите, уважаемые форумчане.
Удачных выходных всем!
:)

   
 
 автор: Lisnerpa   (16.09.2005 в 20:39)   письмо автору
 
   для: Lisnerpa   (15.09.2005 в 14:33)
 

Следующий вопрос про функции работы со строками и оператор из замка Иф.

Почему я не могу написать:
if (substr($fvs,0,4) = "Тур:")
?
Это вызывает ошибку.

Приходится задавать дополнительную переменную, т.е.писать:
...
$l4=substr($fvs,0,4);
if ($l4 = "Тур:")
...
это не вызывает ошибки.
В принципе я не против, хотя в VB такие однострочные конструкции без проблем.

   
 
 автор: Lisnerpa   (16.09.2005 в 20:33)   письмо автору
 
   для: cheops   (16.09.2005 в 19:26)
 

Спасибо, буду иметь все это в виду.
Пока что я не буду проверять, что и как, кода еще много надо сделать.
Посложнее, чем в VB получается, ну и понятно, почему.

   
 
 автор: cheops   (16.09.2005 в 19:26)   письмо автору
 
   для: Lisnerpa   (16.09.2005 в 14:42)
 

Вне функций все переменные глобальные, для того, чтобы переменные были глобальными и в функции следует обявить её внутри функции с атрибутом global
<?php
function func()
{
  global 
$arr;
  
$arr = array();
}
?>

Важное отличие - переменные будут глобальными только в пределах одного файла и одной сессии - переход к другим файлам или перезагрузка страницы приводит к сбросу данных, для того, чтобы даные были действительно глобальными следует хранить данные, либо в суперглобальных массивах, либо в файлах, базе данных и т.п. Подробности в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=298

   
 
 автор: XPraptor   (16.09.2005 в 16:29)   письмо автору
 
   для: Lisnerpa   (16.09.2005 в 14:42)
 

В PHP все переменные объявляются без скобок, хоть массив, хоть одиночная. global $z_txt;
И в коде можешь присваивать потом что хочешь: $z_txt[0]="string 1";
Если используешь объявленную ранее глобальную переменную внутри function, то нужно и в функции написать global $z_txt;

   
 
 автор: Lisnerpa   (16.09.2005 в 14:42)   письмо автору
 
   для: Lisnerpa   (15.09.2005 в 14:33)
 

Как описать глобальную переменную типа массив?

в VB я это сделал так:
Global z_txt() As String 'полный текст отрывка

Запись
global $z_txt[]; // полный текст отрывка (массив строк)
вызывает ошибку на линии (сидела бы он а себе в парке и не выезжала б!)

Или этого вообще не следует делать?
Но мне нужно работать с содержимым этого массива в разных элементах программы.

   
 
 автор: Lisnerpa   (16.09.2005 в 14:32)   письмо автору
 
   для: cheops   (15.09.2005 в 16:32)
 

Это проект под виндовс.
Практически да... в нем кроме циклов, ифов и селект касе ничего и нет.
Ну форм шоу. естественно.
все же пробую подойти линейно - беру коды и стараюсь переделать под php.
дело в том, что для незнающего языка ИНАЧЕ переписать на нем, чем было имеющееся - это кажется сложнее.
Знаки доллара - да...

   
 
 автор: cheops   (16.09.2005 в 13:00)   письмо автору
 
   для: XPraptor   (16.09.2005 в 11:42)
 

>cheops, В VB нет разницы для инета или для винды, код
>всеравно программный на VB.
С большой натяжкой это можно сказать и про PHP, однако это будет передёргиванием. Приложение на VB либо ориентировано на Windows либо на работу в составе IIS и разница имеется.

   

Сообщения:  [1-10]   [11-13] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования