Кодинг на PHP

Cody

Самец :)
Награды
6
ещё насчет Html тогда) ( вижу,что есть отдельная тема, но не хочу расплываться)
будучи школьниками делали сайт по астрономии во фронтпэйдже
с него и стоит начать как базы для html ? или сейчас что-то другое вышло под это дело
 

HELL BOOMER

Ословед
ещё насчет Html тогда) ( вижу,что есть отдельная тема, но не хочу расплываться)
будучи школьниками делали сайт по астрономии во фронтпэйдже
с него и стоит начать как базы для html ? или сейчас что-то другое вышло под это дело
Не сказал бы, что FrontPage хорошая вещь (как мне помнится он создает много бесполезного кода). Всегда писал вручную, не используя приложения типа WISYWIG. Опять же рекомендую Komodo Edit, в нем подсказчик лучше всего работает. Вообще лучше смотрите в сторону нового стандарта HTML5 (нужный минимум и более того можно найти здесь -> http://htmlbook.ru/html5).
 

Cody

Самец :)
Награды
6
Т.е. на html5 можно работать по-сути не зная html,исток?и опять же под нее можно скачать ту программу, что вы обозначили выше? а то по ссылке только инфа о Html5
 

HELL BOOMER

Ословед
Т.е. на html5 можно работать по-сути не зная html,исток?и опять же под нее можно скачать ту программу, что вы обозначили выше? а то по ссылке только инфа о Html5
Нет, это одно и то же, просто 5я версия добавляет новые теги, с которыми проще работать. Программу можете скачать и это (мне она кажется более адекватной), но есть и множество других.
 
HTML5 конечно хорошо, но увлекаться по началу им сильно не советую. Кроссбраузерность превыше всего ;)
 

XoD

Самец :)
Награды
6
Галакс прав! Кроссбраузерность - это главное, о чем должен заботиться любой верстальщик! Забудь пока про HTML5 так, словно HELL BOOMER тебе про него ничего не говорил! Учи просто HTML и ни в коем случае не пренебрегай доктайпом - отдельно говорю про это, поскольку большинство учебников, особенно "для чайников", вообще опускают этот архиважный вопрос. Доктайп - первая строка любой странички, которую ты напишешь. Понимаешь к чему я клоню, и с чего нужно начать? ;)

HTML5 для тебя пока дебри, и не стоит терять на них время. УЧИ_И_ОТРАБАТЫВАЙ азы!
 

Cody

Самец :)
Награды
6
а что так получается что 5й не поддерживает кроссбраузерность? ( во всяком случае для самых известных браузеров)
просто из слов Хелла следует,что это просто доработанная версия Html
насколько понимаю заметную вещь оказывает только,если юзать xhtml, который имеет драконовскую обработку ошибок,а html лоялен к некритическим ошибкам в коде
 
а что так получается что 5й не поддерживает кроссбраузерность? ( во всяком случае для самых известных браузеров)
просто из слов Хелла следует,что это просто доработанная версия Html
насколько понимаю заметную вещь оказывает только,если юзать xhtml, который имеет драконовскую обработку ошибок,а html лоялен к некритическим ошибкам в коде

Все последние браузеры поддерживают HTML5, но кроссбраузерность означает, чтобы работало во всех браузерах. Откроет кто-нибудь твой навороченный сайт в IE7 и увидит покоцанную менюшку в столбик, под ней конетент и логотип с надписью поверх :)
 

HELL BOOMER

Ословед
@ Cody, galaX
Хотел воздержаться от ответа, но все таки решил написать.

Да у html5 кроссбраузерность хромает (точнее сказать не достаточно поддерживается во всех браузерах). Но даже IE6 что то, но поддерживает (26 из 500 балов по версии html5test.com, при том когда он был написан). Ранее, говоря про html5, я говорил про тот минимум, что поддерживают старые браузера (ну уж точно теги header, footer и д.р., не на прямую, так через javascript). В общем вот вам 2е функции, которые позволяют определить, с какого браузера зашел пользователь, и сказать о достаточной поддержке html5:
PHP:
function checkBrowser($browserData)
{
	$result = false;
	$version = explode($browserData[1], ".");

	switch ($browserData[0])
	{
		case "Chrome":
			if ($version >= 6) $result = true; break;
		case "Opera":
			if ($version >= 10) $result = true; break;
		case "Firefox":
			if ($version >= 4) $result = true; break;
		case "Safari":
			if ($version >= 5) $result = true; break;
		case "IE":
			if ($version >= 9) $result = true; break;
		case "Maxthon":
			if ($version >= 3) $result = true; break;
	}

	return $result;
}

function getBrowserData($user_agent)
{
	preg_match("/(MSIE|Opera|Firefox|Chrome|Version|Opera Mini|Netscape|Konqueror|SeaMonkey|Camino|Minefield|Iceweasel|K-Meleon|Maxthon)(?:\/| )([0-9.]+)/", $user_agent, $browser_info);

	if ($browser_info)
	{
		list(, $browser, $version) = $browser_info;

		if (preg_match("/Opera ([0-9.]+)/i", $user_agent, $opera))
			return array('Opera', $opera[1]);

		if ($browser == 'MSIE')
		{
			preg_match("/(Maxthon|Avant Browser|MyIE2)/i", $user_agent, $ie);

			return array('IE', $ie ? '0.0' : $version);
		}

		if ($browser == 'Firefox')
		{
			preg_match("/(Flock|Navigator|Epiphany)\/([0-9.]+)/", $user_agent, $ff);

			if ($ff)
				return array($ff[1], $ff[2]);
		}

		if ($browser == 'Opera' && $version == '9.80')
			return array('Opera', substr($user_agent, -5));

		if ($browser == 'Version')
			return array('Safari', $version);

		return array($browser, $version);
	}
	elseif (strpos($user_agent, 'Gecko'))
		return array('Gecko', '0.0');
	else
		return array('NOTFOUND', '0.0');
}

if (checkBrowser(getBrowserData($_SERVER['HTTP_USER_AGENT'])))
{
	//
}

Писал эти функции по данным от сюда http://html5test.com/results/desktop.html
 
@ Cody, galaX
Хотел воздержаться от ответа, но все таки решил написать.

Да у html5 кроссбраузерность хромает (точнее сказать не достаточно поддерживается во всех браузерах). Но даже IE6 что то, но поддерживает (26 из 500 балов по версии html5test.com, при том когда он был написан). Ранее, говоря про html5, я говорил про тот минимум, что поддерживают старые браузера (ну уж точно теги header, footer и д.р., не на прямую, так через javascript). В общем вот вам 2е функции, которые позволяют определить, с какого браузера зашел пользователь, и сказать о достаточной поддержке html5:
PHP:
function checkBrowser($browserData)
{
    $result = false;
    $version = explode($browserData[1], ".");

    switch ($browserData[0])
    {
        case "Chrome":
            if ($version >= 6) $result = true; break;
        case "Opera":
            if ($version >= 10) $result = true; break;
        case "Firefox":
            if ($version >= 4) $result = true; break;
        case "Safari":
            if ($version >= 5) $result = true; break;
        case "IE":
            if ($version >= 9) $result = true; break;
        case "Maxthon":
            if ($version >= 3) $result = true; break;
    }

    return $result;
}

function getBrowserData($user_agent)
{
    preg_match("/(MSIE|Opera|Firefox|Chrome|Version|Opera Mini|Netscape|Konqueror|SeaMonkey|Camino|Minefield|Iceweasel|K-Meleon|Maxthon)(?:\/| )([0-9.]+)/", $user_agent, $browser_info);

    if ($browser_info)
    {
        list(, $browser, $version) = $browser_info;

        if (preg_match("/Opera ([0-9.]+)/i", $user_agent, $opera))
            return array('Opera', $opera[1]);

        if ($browser == 'MSIE')
        {
            preg_match("/(Maxthon|Avant Browser|MyIE2)/i", $user_agent, $ie);

            return array('IE', $ie ? '0.0' : $version);
        }

        if ($browser == 'Firefox')
        {
            preg_match("/(Flock|Navigator|Epiphany)\/([0-9.]+)/", $user_agent, $ff);

            if ($ff)
                return array($ff[1], $ff[2]);
        }

        if ($browser == 'Opera' && $version == '9.80')
            return array('Opera', substr($user_agent, -5));

        if ($browser == 'Version')
            return array('Safari', $version);

        return array($browser, $version);
    }
    elseif (strpos($user_agent, 'Gecko'))
        return array('Gecko', '0.0');
    else
        return array('NOTFOUND', '0.0');
}

if (checkBrowser(getBrowserData($_SERVER['HTTP_USER_AGENT'])))
{
    //
}

Писал эти функции по данным от сюда http://html5test.com/results/desktop.html

Безусловно круто, что ты расстарался, написал функцию (правда я по этой тематике уже видел готовые решения, не знаю, зачем надо было изобретать велосипед), но вот скажи, кому из клиентов малого и среднего бизнеса хочется переплачивать? ИМХО надо делать максимум продуктивности при минимуме затрат сил и времени.
 
Галакс прав! Кроссбраузерность - это главное, о чем должен заботиться любой верстальщик! Забудь пока про HTML5 так, словно HELL BOOMER тебе про него ничего не говорил! Учи просто HTML и ни в коем случае не пренебрегай доктайпом - отдельно говорю про это, поскольку большинство учебников, особенно "для чайников", вообще опускают этот архиважный вопрос. Доктайп - первая строка любой странички, которую ты напишешь.

Думаешь чего несешь?)
Во первых, доктайпы обязательны только для html ниже 5 версии.
Во вторых, html5 вполне поддерживают все основные браузеры, про кроссбраузерность можно постепенно забывать (или ты пишешь для IE6 и ниже?). Для IE в любом случае понадобятся всяческие хаки, ибо гавно поделие. Что касается остальных браузеров - тут уж просто нужно быть "в теме".
Кроссбраузерность главным образом касается CSS (кто не знает - уже отказываются от префиксов типа -moz, -o и -webkit, все это дело стандартизируется, где-то и на хабре еще писали).
 

XoD

Самец :)
Награды
6
Про то, что в пятой версии доктайпом вообще можно пренебречь, я, признаться честно, не знал :) Все новшества сам еще только осваиваю, поскольку являюсь на 90% Server Side Developer и верстаю нечасто.
 

XoD

Самец :)
Награды
6
Про то, что в пятой версии доктайпом вообще можно пренебречь, я, признаться честно, не знал :)
извиняюсь, не так выразился :) до 5 версии была куча доктайпов, в 5 объединили под <!DOCTYPE html> и можно больше не париться

А, ну тогда все норм :) А то я уж подумал, что реально что-то упустил ))
 
Как задать направление сортировки call_user_func_array('array_mu ltisort', $params);?

Есть такая проблемма, пытаюсь отсортировать многомерный массив с помощью array_multisort, но так как колличество параметров не известно то использую call_user_func_array('array_multisort', $params);
Сортировка проходит, все хорошо, но не получается задать направления (SORT_ASC,SORT_DESC). Т.е. если $params[1] идет типа string, то он просит дать ему "array or a sort flag". Причем массив должен быть той же мерности, что и массивы данных, иначе ругается ( Array sizes are inconsistent). Но если дать ему массив той же мерности, то ошибок нет, но и напраления сортировки тоже нет.
Собственно вопрос, как таки задать напраление сортировки с помощью аргумента для вызова через call_user_func_array('array_multisort', $params); ?

Код
PHP:
function get_fields($data, $order_by) {
  $order_row = preg_split("/[\s,]+/", $order_by);
  for ($i=0;$i<count($order_row);$i++) {  
  foreach ($data as $key => $row) { 
    $tmp[$i][$key]  = $row[$order_row[$i]];   
  } 
}  
return $tmp;
}

function ordering($data, $order_by) {   
  $tmp = get_fields($data, $order_by);
  $params = array();
  foreach($tmp as &$t){
    $params[] = &$t;
  }
  $params[1] = array("SORT_DESC","SORT_DESC","SORT_DESC","SORT_DESC"); // like that no warning but no sorting
  $params[] = &$data;
  call_user_func_array('array_multisort', $params);
  return array_pop($params);
}
$data = array (    array('id' => 1,'name' => 'Barack','city' => 9),    array('id' => 7,'name' => 'boris','city' => 2),    array('id' => 3,'name' => 'coris','city' => 2),    array('id' => 3,'name' => 'coris','city' => 2));
$order_by = "city desc, name";
echo "<br>ORDER BY $order_by<br>";
$ordered = ordering($data, $order_by);
echo "<pre>";
var_dump($ordered);
echo "</pre>";

Сори за код, привел в читабельный вид (хотя копипастил из редактора).
 

XoD

Самец :)
Награды
6
На одном из старых проектов сталкивался с этой задачей. Находил готовое решение, которое потом допиливал под себя. Покопаюсь в репозиториях, если найду - выложу. Ты бы хоть код в читабельном виде выкладывал. А-то это все равно, что некоторые начинающие программисты на тематичных форумах просят объяснить им, что делает минимизированный JS. Тут конечно попроще задача, и талантами робота обладать не нужно, но ты все же переносы строк и табуляцию расставь ;)
 

Gunman

Ословед
post_max_size и upload_max_filesize 30мб
если загружать файл больше, пишет
Warning: POST Content-Length of 42815501 bytes exceeds the limit of 31457280 bytes in Unknown on line 0
Возможно ли средствами php хотябы вывести ошибку том что превышен лимит?
// не так выразился. ошибку то вывести можно но после варнинга. В голову приходит только php_value error_reporting E_NONe. А на стадии загрузки файла, както можно это решить?
 

HD Radio

HDR | LOUNGE & CHILL [AAC-LC 192 kbps]
  • Сверху