вывожу некешированный ресурс с 60 фотографиями, обрабатывается гдето порядка 6 секунд. Хотел поинтересоваться, а если phpthumbof не обрабатывать фото а просто путь выводить, цикл ведь быстрее будет? Но тут путь как раз и формирует phpthumbof и его просто так не выкинуть да?
т.е. вызывать я и так могу [[!Gal1? &galdir=assets/components/focus/images/gal &id=[[*id]] &options=w=1100&h=1100]] выкинув ту бесполезную строчку, а options присвою "'.$options.'"
Спасибо за урок!) очень интересно!
Результат в обоих случаях одинаков. Я думаю, не стоит так сильно голову ломать. В php есть много способов реализации одного и того же.
php.net/manual/ru/function.array-diff-key.php array_diff_key — Вычисляет расхождение массивов, сравнивая ключи То есть он уже отделяет от массива все уникальные элементы, скорее всего для того, чтобы быть четко уверенным в том, что это в конечный массив попадет сумма именно уникальных элементов. А то мало ли какие подводные камни есть в этом суммировании. Я думаю, не стоит так сильно голову ломать. В php есть много способов реализации одного и того же. Джейсон — очень опытный разработчик с огромным стажем. Наверняка он применил оптимальный вариант.
Оператор + возвращает левый массив, к которому был присоединен правый массив. Для ключей, которые существуют в обоих массивах, будут использованы значения из левого массива, а соответствующие им элементы из правого массива будут проигнорированы. Т.е. при сложении $collection + $_relatedObjects (запись именно в таком порядке), если имеются одинаковые ключи и там, и там, то при совпадении ключей выберутся только ключи из $collection. Все остальные ключи из обоих массивов добавятся в результирующий массив. array_diff_key ( array array1, array array2 [, array ...] ) возвращает массив, содержащий все значения array1, имеющие ключи, не содержащиеся в последующих параметрах. Обратите внимание, что ассоциации сохраняются. При array_diff_key($_relatedObjects, $collection) мы получили расхождение этих массивов а потом добавляем к нему только что выкинутые ключи (+ $collection), т.о. заменив все ключи-дубликаты из $_relatedObjects ключами из $collection. Результат в обоих случаях одинаков.
Это снова я.. В чём разница между $collection + $_relatedObjects и array_diff_key($_relatedObjects, $collection) + $collection? $relatedObjects = array( 2 => 'object 2', 3 => 'object 3', 5 => 'object 5' ); $collection = array( 3 => 'new instanceof object 3', 5 => 'new instanceof object 5', 8 => 'object 8', 10 => 'object 10', 15 => 'object 15', );
$_relatedObjects = $relatedObjects; // set default array $_relatedObjects = $collection + $_relatedObjects; ksort($_relatedObjects); echo '$_relatedObjects = $collection + $_relatedObjects;' . "\n"; print_r($_relatedObjects);
echo "\n";
$_relatedObjects = $relatedObjects; // set default array $_relatedObjects = array_diff_key($_relatedObjects, $collection) + $collection; ksort($_relatedObjects); echo '$_relatedObjects = array_diff_key($_relatedObjects, $collection) + $collection;' . "\n"; print_r($_relatedObjects); $_relatedObjects = $collection + $_relatedObjects; Array ( [2] => object 2 [3] => new instanceof object 3 [5] => new instanceof object 5 [8] => object 8 [10] => object 10 [15] => object 15 )
$_relatedObjects = array_diff_key($_relatedObjects, $collection) + $collection; Array ( [2] => object 2 [3] => new instanceof object 3 [5] => new instanceof object 5 [8] => object 8 [10] => object 10 [15] => object 15 ) Я прадва не понимаю :-( Ну а вообще, здорово, конечно, что так оперативно)
Дополнительная информация по теме: tokarchuk.ru/2011/05/geolocation-geoip-in-php/ php.net/manual/ru/ref.geoip.php www.phpandstuff.com/articles/geoip-country-lookup-with-php
Отличная новость! Багу пофиксили: github.com/modxcms/xpdo/commit/e5b28ec2cbea150d591eb07d1768ad97dc53895a