PHP примитивы — Синтаксис

Редакция автор: stain

Обязательна для ознакомления глобальная переменная $_SERVER[] - это массив, содержащий информацию, такую как заголовки, пути и местоположения скриптов. Записи в этом массиве создаются веб-сервером. Нет гарантии, что каждый веб-сервер предоставит любую из них; сервер может опустить некоторые из них или предоставить другие, не указанные здесь. Тем не менее, многие эти переменные присутствуют в » спецификации CGI/1.1, так что вы можете ожидать их реализации и в конкретном веб-сервере.
$_POST – ассоциативный массив, содержащий пары ключ-значение, отправленные на сервер методом post.
$_GET – ассоциативный массив, содержащий пары ключ-значение, отправленные на сервер методом get.
$_REQUEST – объединение пар ключ-значение из $_POST и $_GET.
$_ENV – содержит значения, связанные с сервером (хостом) и его конфигурацией.
$_SESSION – ассоциативный массив, хранящий значения переменных сессии между переходами по страницам и запусками приложения.
$_COOKIE – предоставляет доступ к переменным, сохраненным в кукисах на клиенте.
$_FILES – специальный массив для входных данных, полученных при отправке на сервер файлов методом post.
Суперглобальная переменная $GLOBALS – родственник ключевого слова global. В массиве $GLOBALS хранятся все переменные, доступные в глобальной области видимости, в том числе и суперглобальные массивы. Например, доступ к $_ENV можно получить вот таким образом: $GLOBALS['_ENV'];
Дополнительная литература. Полезные куски кода. Еще. Еще. Функции. Оптимизация кода.

/* Многострочный комментарий */
$myVar= " A down B splash. What steel place on tube? ";
// Однострочный комментарий
echo "A"." "."&"." "."B"." "."sit on tube".$myVar;

//вывод на экран
echo "Print";
//вывод на экран
print "Print";

//Операторы сравнения возвращают булиан 1(true) или 0(false)
    > Greater than
    < Less than
    <= Less than or equal to
    >= Greater than or equal to
    == Equal to
    != Not equal to

//пример синтаксиса если то, иначе if/elseif/else
if($items > 5) {
          echo "You get a 10% discount!";
        }
else    {
          echo "You don`t get a 10% discount!";
        }

//Пример  синтаксиса условного оператора switch/case
switch ($i) {
        case 0:
            echo '$i is 0';
            break;
        case 1:
            echo '$i is 1';
            break;
        default:
            echo "$i isn't 0 or 1";
    }
// Альтернативный синтаксис switch
switch ($i):
        case 0:
            echo '$i is 0.';
            break;
        case 1:
            echo '$i is 1.';
            break;
        default:
            echo "The value isn't 0 or 1";
    endswitch;


// Пример массива
$array = array("Egg", "Tomato", "Beans");
//В массивах отсчет начинается с 0, поэтому вывод первого значения выглядит так
echo $array[0]; или так echo $array{0};
//Удаление всех элементов массива
unset($array);
//Удаление первого элемента массива
unset($array{0});
//Добавление элемента в массив
array_push($array, "Bruno Mars");
//Подсчет количества элементов в массиве
count($array);
//Сортировка элементов массива
sort($array);
//Обратная сортировка элементов массива
rsort($array);
//Еще пример сортировка, затем вывод с добавлением после каждого элемента запятой, через функцию join($separator,$array)
$the_array = array(8,6,9,5,2,1);
sort($the_array);
print join(",",$the_array); //1,2,5,6,8,9 
//Поиск по массиву, возвращает ключ
array_search("apples",$fruits);
//Ассоциативные массивы
$myAssocArray = array('year' => 2012, 'colour' => 'blue', 'doors' => 5);
echo $myAssocArray['colour']; //blue
//Пример извлечения всех данных из ассоциативного массива
$byers = array('name'=>'Yura','lastname'=>'Vanderburg','age'=>'42');
foreach($byers as $elements => $include){echo $include. ' ' . $elements;
          }
//напечатается так
Yura name
Vanderburg lastname
42 age
//Массив массивов
$deck = array(array('2 of Diamonds', 2), array('5 of Diamonds', 5), array('7 of Diamonds', 7));
echo $deck[2][0]; //7 of Diamonds



//Цикл for
for ($leap = 2004; $leap < 2050; $leap = $leap + 4) {echo "$leap";}
//Цикл foreach
$langs = array("JavaScript","HTML/CSS", "PHP","Python", "Ruby");
foreach ($langs as $lang) {echo "$lang";}
//Цикл while не очень удачный пример(сам цикл больше подходит для допустим игры в кости)
$i=1;
while($i == 1){
        if($i == 1){
        echo $i." is equal 1";
        $i=2;
        }
        else {echo $i;}
    }
//Цикл while альтернативный вариант синтаксиса 
while(условие): 
   //сюжет )))
endwhile;
//Цикл do while
        $flipCount = 0;
	do {
		$flip = rand(0,1);
		$flipCount ++;
		if ($flip){
			echo "H";
		}
		else {
			echo "T";
		}
	} while ($flip);
	$verb = "were";
	$last = "flips";
	if ($flipCount == 1) {
		$verb = "was";
		$last = "flip";
	}
	echo "

There {$verb} {$flipCount} {$last}!

"; //Функции //strlen() возвращает длину строки. $length = strlen("david"); print $length; //Возвращает подстроку где 0 это первый символ в строке, начиная с которого будут, выведены 3 символа. substr($myname, 0, 3); //strtoupper() and strtolower() прописные на заглавные и наоборот. //Поиск позиции !!! Важно если вы используете IF(strpos()){}, следует писать такIF(strpos()===0 || strpos()>0 ){} strpos("emily", "il"); // 2 - т.е. 3-тий символ от начала. //Поиск позиции вложения с проверкой на его наличие if (strpos("Bamby","d") === false) {echo "error";} //вывод целого, или целого и дробной части до знака второго параметра round(M_PI,3); //3,142 // M_PI это PI //Генерация случайного числа rand(); //Генерация случайного числа в пределах от min до max rand($min,$max); //Пользовательские функции function name(parameters) { statement;} function displayName($n){ echo $n; return $n; } $name = "Name"; displayName($name); //Name //Возврат переменной из функции return $value; //функции,классы,переменные бывают Публичные, то есть доступные из любой точки программы. //классы могут содержать в себе не только переменные но и функции public function myfunction(parameters){statement;}; //класс class myClass{ public $firstname; public $age; public function __construct($firstname, $age) { $this->firstname = $firstname; //передача переменных, $this->firstname это переменная свежесозданного объекта $this->age = $age; } public function greet() { return "Hello, my name is " . $this->firstname . " " . ". Nice to meet you! :-)"; } } //Чтобы создать объект на основе класса надо инициализировать new(новый) объект нужного нам класса. $firstname="Name"; $age=18; $myobject = new myClass($firstname,$age); // запуск внутреннего метода, объекта созданного на основе нашего класса echo $myobject->greet(); //Hello, my name is Name. Nice to meet you! :-) //Присваивание переменной age нашего объекта снаружи $myobject->age = 12; //ВНУТРЕННИЙ МЕТОД ДЛЯ СОЗДАНИЯ ОБЪЕКТА public function __construct($prop1, $prop2) { $this->prop1 = $prop1; $this->prop2 = $prop2; } //Поиск объекта is_a($me, "Person"); //$me объект, "name" название класса //Поиск свойств объекта property_exists($me, "name"); //$me объект, "name" название параметра //Проверка на существование методов method_exists($me, "dance"); //$me объект, "name" название метода //Наследование клас грузовиков наследует все параметры и функции класса автомобиль ключевое слово наследования extends class Truck extends Vehicle {} //Замещение родительских методов дочерними, по сути просто переназначение переменных, уже прописанных в классе от которого происходит наследование. //Прификс final перед описанием метода класса, запрещает наследование метода(переменной). final public function honk() {return "HONK HONK!";} //константы внутри класса не имеют $ в начале и они постоянны. //Доступ к константе stealth объекта Ninja происходит с помощью :: echo Ninja::stealth; //static позволяет сразу использовать переменную или метод, без инициализации его вне класса, и обращение к переменной или методу происходит через :: как и к константам. public static function greet() {} Person::greet(); //разделяем строку на массив переменных с помощью метода list формируем массив переменных, с помощью explode делим строку на части где в данном случае разделителем является двоеточие $data = "foo:*:1023:1000::/home/foo:/bin/sh"; list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data); echo $user; // foo echo $pass; // * // implode делаетвплоть до наоборот, собирает строки $array = array('имя', 'почта', 'телефон'); $comma_separated = implode(",", $array); echo $comma_separated; // имя,почта,телефон

Простенький бот.

';
				if($a===0 || $a>0){
					$ans = $out[$i];
				}
				$i++;    
			}
			return $ans;
		}
	}
        //Тук! тук! // Это я Зигмунд петрович. // Мне бы товарища мозга.
	$postman = 'Тук! тук!';
	$obj_im = new im;	
	echo $obj_im->talk($brain,$postman);	
	?>

$_FILES['userfile']['name']
Оригинальное имя файла на компьютере клиента.
$_FILES['userfile']['type']
Mime-тип файла, в случае, если браузер предоставил такую информацию. Пример: "image/gif". Этот mime-тип не проверяется в PHP, так что не полагайтесь на его значение без проверки.
$_FILES['userfile']['size']
Размер в байтах принятого файла.
$_FILES['userfile']['tmp_name']
Временное имя, с которым принятый файл был сохранен на сервере.
$_FILES['userfile']['error']
Код ошибки, которая может возникнуть при загрузке файла.

архитектура $_FILES логична. Нужно только вспомнить о представлении таблиц в базах данных — таблица-столбец-строка.
Именно в этом ключе и нужно рассуждать:
files — это таблица с параметрами файлов
name — столбец имен файлов, и ключевое поле, по которому можно получить все остальные значения.
type — столбец типов
и т.п.
Все крайне логично.

php загрузка файла коды ошибок

UPLOAD_ERR_OK

Значение: 0; Ошибок не возникало, файл был успешно загружен на сервер.
UPLOAD_ERR_INI_SIZE

Значение: 1; Размер принятого файла превысил максимально допустимый размер, который задан директивой upload_max_filesize конфигурационного файла php.ini.
UPLOAD_ERR_FORM_SIZE

Значение: 2; Размер загружаемого файла превысил значение MAX_FILE_SIZE, указанное в HTML-форме.
UPLOAD_ERR_PARTIAL
Значение: 3; Загружаемый файл был получен только частично.
UPLOAD_ERR_NO_FILE
Значение: 4; Файл не был загружен.
UPLOAD_ERR_NO_TMP_DIR

Значение: 6; отсутствует временная папка.
UPLOAD_ERR_CANT_WRITE

Value: 7; Failed to write file to disk. Introduced in PHP 5.1.0.
UPLOAD_ERR_EXTENSION

Value: 8; A PHP extension stopped the file upload. PHP does not provide a way to ascertain which extension caused the file upload to stop; examining the list of loaded extensions with phpinfo() may help. Introduced in PHP 5.2.0.

Сохранение загруженного файла, в определенном месте. userfile - переменная которая связана с конкретным файлом, tmp_name ключевое слово указывающее на его временное имя, $uploadfile, место куда будет сохранен файл.
move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile);

МУЛЬТИПАСПОРТ

На самом деле мультизагрузка файлов, конечно требуется проверка типов и прочая чешуйня, но пока что двое из ларца сказали ляп сойдет.

1251 //translit($string); // не используйте вместе с перекодировкой //str_replace(" ","_",$filename); //замена пробелов подчеркиванием //strtolower($string); //буквы в нижнем регистре //Setup our new file path $newFilePath = "./upload/" . $fileprefix . '-'. strtolower(str_replace(" ","_",translit($_FILES['upload']['name'][$i]))); //Upload the file into the temp dir if(move_uploaded_file($tmpFilePath, $newFilePath)) { //Handle other code here } } } } ?>

полезные финики

Функция pathinfo возвращает массив из всего что надо.

$path_parts = pathinfo('/www/htdocs/index.html');

echo $path_parts['dirname'], "\n"; // /www/htdocs
echo $path_parts['basename'], "\n"; // index.html
echo $path_parts['extension'], "\n"; // html

Tagged as:

Categorized in: coding

Комментариев: 0

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.