Есть ли альтернатива для функции file_get_contents ()? Используйте инструменты визуализации баз данных.


(PHP 4 >= 4.3.0, PHP 5, PHP 7)

file_get_contents — Читает содержимое файла в строку

Описание

String file_get_contents (string $filename [, bool $use_include_path = false [, resource $context [, int $offset = -1 [, int $maxlen ]]]])

Данная функция похожа на функцию file() с той только разницей, что file_get_contents() возвращает содержимое файла в строке, начиная с указанного смещения offset и до maxlen байт. В случае неудачи, file_get_contents() вернёт FALSE .

Использование функции file_get_contents() наиболее предпочтительно в случае необходимости получить содержимое файла целиком, поскольку для улучшения производительности функция использует технику отображения файла в память (memory mapping), если она поддерживается вашей операционной системой.

Замечание :

Если вы открываете URI содержащий спецсимволы, такие как пробел, вам нужно закодировать URI при помощи urlencode() .

Список параметров

Имя читаемого файла.

Use_include_path

Замечание :

Начиная с версии PHP 5 можно использовать константу FILE_USE_INCLUDE_PATH для поиска файла в include path .

context

Корректный ресурс контекста, созданный с помощью функции stream_context_create() . Если в использовании особого контекста нет необходимости, можно пропустить этот параметр передав в него значение NULL .

Смещение, с которого начнется чтение оригинального потока.

Поиск смещения (offset) не поддерживается при работе с удаленными файлами. Попытка поиска смещения на нелокальных файлах может работать при небольших смещениях, но этот результат является непредсказуемым, так как он работает на буферизованном потоке.

Максимальный размер читаемых данных. По умолчанию чтение осуществляется пока не будет достигнут конец файла. Учтите, что этот параметр применяется и к потоку с фильтрами.

Возвращаемые значения

Функция возвращает прочтенные данные или FALSE в случае возникновения ошибки.

Внимание

Эта функция может возвращать как boolean FALSE , так и не-boolean значение, которое приводится к FALSE . За более подробной информацией обратитесь к разделу Булев тип . Используйте оператор === для проверки значения, возвращаемого этой функцией.

Ошибки

Будет сгенерирована ошибка уровня E_WARNING , если параметр filename не удается найти, параметр maxlength меньше нуля или поиск по смещению offset в потоке завершается неудачно.

Примеры

Пример #1 Получить и вывести исходный код домашней страницы вебсайта

$homepage = file_get_contents ("http://www.example.com/" );
echo $homepage ;
?>

Пример #2 Поиск файлов в include_path

// <= PHP 5
$file = file_get_contents ("./people.txt" , true );
// > PHP 5
$file = file_get_contents ("./people.txt" , FILE_USE_INCLUDE_PATH );
?>

Пример #3 Чтение секции файла

// Читаем 14 символов, начиная с 21 символа
$section = file_get_contents ("./people.txt" , NULL , NULL , 20 , 14 );
var_dump ($section );
?>

Результатом выполнения данного примера будет что-то подобное:

string(14) "lle Bjori Ro"

Пример #4 Использование потоковых контекстов

// Создаем поток
$opts = array(
"http" =>array(
"method" => "GET" ,
"header" => "Accept-language: en\r\n" .
"Cookie: foo=bar\r\n"
);

$context = stream_context_create ($opts );

// Открываем файл с помощью установленных выше HTTP-заголовков
$file = file_get_contents ("http://www.example.com/" , false , $context );
?>

Close_notify . PHP сообщит об этом как "SSL: Fatal Protocol Error" в тот момент, когда вы достигнете конца данных. Чтобы обойти это, вы должны установить error_reporting на уровень, исключающий E_WARNING. PHP версий 4.3.7 и старше умеет определять, что на стороне сервера находится проблемный IIS при открытии потока с помощью обертки https:// и не выводит предупреждение. Если вы используете fsockopen() для создания ssl:// сокета, вы сами отвечаете за определение и подавление этого предупреждения.

file_get_contents () в значительной степени делает следующее:

$filename = "/usr/local/something.txt"; $handle = fopen($filename, "r"); $contents = fread($handle, filesize($filename)); fclose($handle);

Поскольку file_get_contents () отключен, я довольно убежден, что вышеуказанное не будет работать.

В зависимости от того, что вы пытаетесь прочитать, и по моему опыту хосты отключают чтение удаленных файлов, обычно у вас могут быть другие варианты. Если вы пытаетесь читать удаленные файлы (по сети, то есть http и т. Д.), Вы можете посмотреть на функции библиотеки cURL

Вы можете открыть файл с помощью fopen , получить содержимое файла и использовать его? А может быть, cURL полезен для вас? http://php.net/manual/en/book.curl.php

Всего понемногу.

Function ff_get($f) { if (!file_exists($f)) { return false; } $result = @file_get_contents($f); if ($result) { return $result; } else { $handle = @fopen($f, "r"); $contents = @fread($handle, @filesize($f)); @fclose($handle); if ($contents) { return $contents; } else if (!function_exists("curl_init")) { return false; } else { $ch = @curl_init(); @curl_setopt($ch, CURLOPT_URL, $f); @curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $output = @curl_exec($ch); @curl_close($ch); if ($output) { return $output; } else { return false; }}}}

Наиболее очевидная причина, по которой отключена file_get_contents() заключается в том, что она сначала загружает весь файл в основную память. Код из code_burgar может создавать проблемы, если ваш хост назначил вам очень низкий предел памяти.
Как правило, используйте file_get_contents() (или -replacement) только тогда, когда вы уверены, что загружаемый файл невелик. С SplFileObject вы можете SplFileObject с помощью удобного интерфейса. Используйте это, если ваш файл большой.

Попробуйте этот код:

$ch = curl_init(); $timeout = 5; // set to zero for no timeout curl_setopt ($ch, CURLOPT_URL, $url); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $content = curl_exec($ch); curl_close($ch);

Я предполагаю, что вы пытаетесь получить доступ к файлу удаленно через http: // или ftp: //.

В теории существуют альтернативы, такие как fread (), и, если все остальное не работает, fsockopen () . Но если провайдер хорошо разбирается в том, что они делают, они тоже будут отключены.

Используйте пакет пакетов PEAR . Это похоже на официальную замену собственных PHP-функций на PHP-кодированные решения.

Require_once "PHP/Compat.php"; PHP_Compat::loadFunction("file_get_contents");

Или, если вы не хотите использовать класс, вы можете загрузить его вручную.

Require_once "PHP/Compat/Function/file_put_contents.php";

  • Все функции совместимости завернуты if(!function_exists()) поэтому он действительно сработает, если ваш веб-браузер обновит функции сервера позже.
  • Все функции могут использоваться точно так же, как и собственный PHP, а также соответствующие константы доступны!
  • Список всех доступных функций

Если все, что вы пытаетесь сделать, это вызвать хит на заданном URL-адресе и не нужно читать вывод, который вы можете использовать curl (), если ваш веб-хост включен на вашем сервере.

В документации приведен пример вызова url с использованием curl.

Если все остальное не работает, всегда есть cURL. Есть хороший шанс, что он установлен.

Для рассмотрения сексуальных отношений между типами разобьем их снова на 4 подгруппы, подобно тому как это мы делали ранее, но при этом будем использовать две другие пары характеристик, а именно: сенсорику-интуицию с одной стороны и дискутивность-резолютивность - с другой. Последняя пара - это не Юнговские признаки, поэтому скажем о ней несколько слов отдельно.

При помощи этой пары признаков 16 типов разбиваются на две пары квадр. Вторая и третья квадры оказываются "резолютивными" - решительными (лат. resolvo - разрешаю, распутываю, развязываю), т.е. склонными к жестким, резко разрешающим противоречия волевым актам. Первая и четвертая квадры являются "дискутивными" - совещательными (лат. discutio - обсуждаю, обговариваю), т.е. склонными к открытому и широкому обсуждению возникающих по ходу действий противоречий. Данная пара типологических признаков, тесно связанная с жизненными ценностями квадр, берет свое начало, по-видимому, в юнговских архетипах коллективного бессознательного.

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

1. Резолютивные сенсорики - "агрессивные " или "охотники" (Жуков, Горький, Наполеон, Драйзер).
2. Резолютивные интуиты - "виктимные " или "жертвы" (Есенин, Гамлет, Бальзак, Джек Лондон)
3. Дискутивные сенсорики - "заботливые " или "отец-мать" (Гюго, Дюма, Штирлиц, Габен)
4. Дискутивные интуиты - "инфантильные " или "сын-дочь" (Робеспьер, Дон Кихот, Достоевский, Гексли)

Рассмотрим мужские и женские типы по отдельности.

Женские типы

"Заботливая" женщина, или женщина-мать
(Гюго, Дюма, Штирлиц, Габен)

Склонна опекать своего партнера мужского пола. Испытывает влечение к слабым, но интеллигентным мужчинам, которые ей подчиняются в повседневных делах. Ей приятно их защитить, поддержать, приободрить. Подобные качества характера, которые в массовом сознании не вызывают уважения к лицам мужского пола, эта женщина прощает либо считает вполне приемлемыми.

Женщина - "Агрессор"

Все время пытается соперничать с мужчиной, в том числе и в эротических отношениях. Склонна к иронии, насмешкам над противоположным полом. Любит чувствовать себя более компетентной, чем мужчина в любом деле. Во время любовной игры ожидает от мужчины заискивания, показной слабости, эмоциональной нестойкости.

"Виктимная" женщина или женщина-жертва

Идеал такой женщины - физически сильный мужчина, напоминающий суперменов из американских боевиков. Она желает испытывать на себе его силу, противостоять его натиску, чувствовать себя жертвой. В любовных играх отдает предпочтение разным формам противоборства, разжигающим страсть партнера. Женщинам этого типа порой имманентно присущи мазохистские черты. Правда, далеко не все из них отдают себе в этом отчет.

"Инфантильная" женщина, или женщина-дочь

Идеал этой женщины - это добрый и опытный, хорошо приспособленный к жизни мужчина, обычно старше ее по возрасту. В присутствии такого мужчины она чувствует себя маленькой девочкой, почти во всем зависимой от него. В любовной игре предпочтение отдает психологическому фактору - душевной беседе, располагающей музыке, созданию условий для релаксации. Превыше всего ценит снисходительность и заботу.

Мужские типы

"Заботливый" мужчина, или мужчина-отец
(Гюго, Дюма, Штирлиц, Габен)

Опытный и внимательный к духовному миру женщины партнер, умеющий расположить ее к себе покровительственным ухаживанием. В любовной игре очень ценит женскую нежность и незащищенность, ждет восхищения его жизненным опытом и мастерством.

Мужчина - "Агрессор"
(Жуков, Горький, Наполеон, Драйзер).

Этот социотип имеет склонность к насильственному овладению женщиной. В любовной игре любит демонстрировать борьбу. Может позволить себе грубость, иногда причиняет женщинам боль - как физическую, так и моральную. Ожидает от женщины подчинения силе.

"Виктимный" мужчина
(Есенин, Гамлет, Бальзак, Джек Лондон)

Идеализирует властную женщину. Подстраивается под ее вкусы, уважает в ней волевые качества. В поведении то подчеркивает свою зависимость и послушность, то вырывается из-под контроля. В отношениях с женщиной подсознательно ожидает распоряжений, подвохов, упреков. Не получая подобных реакций, невольно провоцирует их проявление.

"Инфантильный" мужчина, или мужчина-сын
(Робеспьер, Дон Кихот, Достоевский, Гексли)

Несамостоятельный, наивный в житейских делах, ожидает от женщины деловой и эмоциональной поддержки. Невольно подчеркивает свою обойденность вниманием, загубленные способности, неприспособленность к жизненной борьбе. Уважает в женщинах опыт и отзывчивость к его проблемам.

Психосексуальная совместимость

"Заботливая" женщина.

Не приемлет от мужчины сильных, но грубых ласк. Лишенная прелюдии силовая эротическая игра угнетает ее сексуальность, поэтому мужчины-супермены ее разочаровывают. Поведение совместимого с ней мужчины должно быть инфантильным, т.е. несмелым, выжидающе манящим. Такая женщина любит ласки, которые выражаются в нежных, по-детски слабых прикосновениях к эрогенным зонам. Отношения с Виктимным мужчиной ее тоже не устраивают, поскольку его капризность, уловки и провоцирование силы ее удивляют и отталкивают. Отношения с тождественным по психосексуальным устремлениям Заботливым мужчиной ее с течением времени разочаровывают, хотя, в принципе, она ничего против и не имеет. Рано или поздно среди комфорта, которым ее окружили, она ощутит недостаток духовности.

"Агрессивная" женщина

Ищет объект для своих властных и активных эротических действий. Больше всего ее устраивает мужчина, который ведет себя с ней послушно, но капризно. Тогда она имеет повод к агрессии. Виктимный мужчина боготворит такую женщину и вместе с тем побаивается ее. Его поведение можно сравнить с поведением пажа, который целиком посвящает себя служению "прекрасной даме". Постоянная игра - лучшее лекарство от пресыщения. В отношениях с Инфантильным мужчиной ей не будет хватать игровой покорности с его стороны. Его нежелание приспосабливаться к агрессивным выпадам не может не поставить такой союз на грань разрыва. Отношения с "Агрессором" мужского пола ей, с одной стороны, льстят и подстегивают ее азарт, но, с другой стороны, и отталкивают, так как не приводят к желаемой победе. Поэтому они могут иметь лишь переменный успех. Заботливый же мужчина будет нервировать ее своим отношением к ней как к маленькому ребенку, которое она воспринимает как унижение.

"Виктимная" женщина (жертва)

Умело играет на своей слабости, незащищенности или неорганизованности, провоцируя тем самым Агрессивного мужчину к активным и решительным действиям. В любовных играх наибольшее значение для нее имеют крепкие объятия и сила мужского тела, уступая которым она демонстрирует свою покорность воле мужчины. Мужчины Заботливого типа кажутся ей удобными, но слишком скучными партнерами, а Инфантильных она в душе считает и вовсе безвольными слабаками. С мужчинами подобного себе типа Виктимная женщина вступает в сложные, с подтекстом отношения, соревнуясь с ними в жертвенности и требуя за это особых привилегий. Нередко подобные игры буквально изматывают обоих. В этом месте считаю необходимым упомянуть, что психоаналитические группы рассматриваются без специальной детализации, поэтому отдельные более тонкие различия внутри них исчезают. В частности, среди Виктимных Т-типов остается без внимания тот факт, что они обычно подразделяются на "трагические жертвы" (ЕТ и ТЕ) и "комические жертвы" (ТР и РТ).

"Инфантильная" женщина (ребенок)

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

1. Подружитесь со справочником по PHP

Если вы новичок в PHP, значит, пришло время познакомиться с внушающим почтение справочником PHP. Справочник по PHP невероятно исчерпывающий и содержит действительно полезные комментарии к каждой статье. Перед тем, как задавать вопросы или пытаться самостоятельно разрешить проблему, сэкономьте время и просто возьмите курс на справочник. Ответы на ваши вопросы уже удобно разместились в полезной статье на сайте PHP.net.
В данном случае мы Вам рекомендуем поискать самостоятельно справочники на русском языке, лучше php для начинающих. Будем рады, если Вы дадите ссылке на полезные справочники в комментариях к статье (Просто учитывайте, что это перевод статьи).

2. Включите отчет об ошибках

6. Делайте отступы и используйте пробелы в коде для читаемости

Если вы не используете отступы и пробелы в коде, то результат выглядит, как картина Джексона Поллака (Jackson Pollack). Обеспечьте читаемость своего кода и нормальный поиск, потому что почти наверняка в будущем вы будете делать в нем изменения. IDE и современные текстовые редакторы могут автоматически делать отступы в коде.

7. Делайте код многоуровневым

Разделение на уровни ваших приложений – это ничто иное, как разделение различных компонентов кода на части. В будущем это даст вам возможность легко изменять код.

8. Всегда используйте

Часто программисты пытаются использовать сокращения в операторах PHP. Вот как это обычно делается:

<% echo "Hello world"; %>

echo "Hello world" ;

<% echo "Hello world" ; %>

Хотя это действительно экономит несколько символов, все эти методы являются устаревшими и неофициальными. Придерживайтесь стандартного , так как это гарантированно будет поддерживаться всеми будущими версиями.

9. Используйте содержательные, последовательные названия

Именование – не только для вашего собственного удовольствия. Нет ничего хуже, чем продираться сквозь бессмысленные условные обозначения другого программиста. Помогите самому себе и другим, используя для своих классов и свойств имена, имеющие смысл.

10. Комментируйте, комментируйте, комментируйте

Кроме использования пробелов и отступов для разделения кода, вам также придется использовать встроенные комментарии, чтобы снабжать примечаниями свой код. Позже вы поблагодарите сами себя, когда придется возвращаться и искать что-либо в коде, или если вы просто не помните того, что делала определенная функция. Это также полезно для тех, кому нужно просмотреть ваш код.

11. Установите MAMP/WAMP

MySQL — самый популярный вид базы данных, используемый с PHP (хотя и не единственный). Если нужно настроить локальное окружение для разработки и тестирования ваших PHP-приложений на компьютере, предусмотрите установку MAMP (Mac) или WAMP (Windows). Установка MySQL на ваш собственный компьютер может стать утомительным процессом, а оба этих программных пакета содержат MySQL. Ловко и просто.

12. Установите лимиты своим скриптам

Установка лимита времени на PHP-скрипты – очень ответственная вещь. Бывают моменты, когда скрипты выходят из строя, и когда это произойдет, вам придется использовать свойство set_time_limit (установить лимит времени), чтобы избежать бесконечно повторяющихся циклов и истечения таймаутов времени соединения с базой данных. Set_time_limit устанавливает лимит времени на максимальное количество секунд, за которое выполняется скрипт (по умолчанию 30). По истечении этого времени возбуждается неустранимая ошибка.

13. Используйте объекты (или ООП)

Объектно-ориентированное программирование (ООП) использует объекты, чтобы представлять компоненты приложения. ООП – это не только способ разбить свой код на отдельные логические секции, оно также снижает количество повторений кода и делает намного более легким его модифицирование в будущем.

14. Поймите разницу между одинарными и двойными кавычками

Использование одинарных кавычек в строках более эффективно, так как парсеру (синтаксическому анализатору) не приходится просеивать код в поиске специальных символов (прим. перев. escape-последовательностей) и прочих вещей, что позволяют двойные кавычки. Там, где это возможно, старайтесь всегда использовать одинарные кавычки.

Возражение: Собственно, это не обязательно верно. Тесты Benchmark показывают, что при тестировании строк без переменных существуют определенные преимущества быстродействия при использовании двойных кавычек.

15. Не ставьте phpinfo() в свой Webroot

Phpinfo – чудесная вещь. Просто создав PHP-файл, в котором есть:

и пристроив его где-нибудь на сервере, вы сможете незамедлительно узнавать все об окружении своего сервера. Тем не менее, множество новичков поместит файл, содержащий phpinfo() в webroot сервера. Это чрезвычайно небезопасная практика, и если чей-то пытливый ум получит доступ, он может потенциально сглазить ваш сервер. Убедитесь, что phpinfo() находится в безопасном месте, а в качестве дополнительной меры удалите его, как только закончите.

16. Никогда, никогда не доверяйте своим пользователям

Если в приложении есть места для входа пользователей, вы всегда должны предполагать, что кто-то попробует ввести сомнительный код. (Мы не подразумеваем, что ваши пользователи — плохие люди. Это просто здравый смысл.) Отличный способ уберечь свой сайт от хакеров – всегда инициализировать свои переменные для защиты сайта от XSS-атак. На PHP.net есть пример должным образом закрытой формы с инициализированными переменными:

if (correct_user ($_POST [ "user" ] , $_POST [ "password" ] ) {

$login = true ;

if ($login ) {

forward_to_secure_environment () ;

17. Храните пароли зашифрованными

Многие новички в PHP часто сбрасывают деликатные данные, такие как пароли, в базу данных, не применяя шифрование. Рассмотрите использование MD5 для шифрования паролей перед тем, как выкладывать их базу данных.

echo md5("myPassword"); // renders -

echo md5 ("myPassword" ) ; // renders -

Возражение: Тем не менее, помните, что хэши MD5 уже давно скомпрометированы. Безусловно, они скорее безопасны, чем нет, но с помощью гигантской “спектральной таблицы” хакеры могут восстановить ваш хэш. Для обеспечения еще большей безопасности обдумайте возможность добавления «соли» (помех в виде «белого шума»). «Соль» – это обычно дополнительный набор символов, которые вы присоединяете к пользовательской строке.

18. Используйте инструменты визуализации баз данных

Если вам кажется сложным планировать и изменять базы данных для своих PHP-приложений, можно было бы рассмотреть возможность использования инструмента визуализации баз данных. Пользователи MySQL могут работать с DBDesigner и MySQL Workbench для визуального дизайна своих баз данных.

19. Используйте буферизацию вывода

Буферизация вывода – это простой способ очень сильно улучшить качество и скорость вашего PHP-скрипта. Без буферизации вывода ваш скрипт будет показывать HTML на странице так, как он обрабатывается – частями. Добавление буферизации вывода позволяет PHP хранить HTML как переменную и посылать его на браузер единой порцией.

Для активирования функции буферизации вывода просто добавьте ob_start() как здесь в начале файла.

Возражение: Хотя это и не требуется, обычно считается хорошей практикой просто взять и прикрепить функцию “ob_end_flush();” к концу документа. P.S. Хотите также сжать HTML? Просто смените “ob_start();”на “ob_start(‘ob_gzhandler’)”;

XHTML

untitled

untitled

20. Оберегайте свой скрипт от атаки SQL-injection

Если вы не отделяете (escape) символы, использующиеся в строках SQL, ваш код уязвим для атаки SQL-injection. Избежать этого можно, используя либо функцию mysql_real_escape_string (прим. перев. для отделения символов), либо подготовленные операторы SQL (prepared statements).

Вот пример mysql_real_escape_string в действии:

$username = mysql_real_escape_string($GET["username"]);

$username = mysql_real_escape_string ($GET [ "username" ] ) ;

И подготовленного оператора:

21. Попробуйте ORM

Если вы пишете объектно-ориентированный PHP, то можете использовать OR-mapping (ORM). ORM позволяет вам преобразовывать данные между реляционными базами данных и языками объектно-ориентированного программирования. Короче говоря, ORM дает возможность работать с базами данных таким же образом, каким вы работаете с классами и объектами в PHP.

Для PHP есть множество ORM-библиотек, таких как Propel, а также ORM встроен в фреймворки PHP, такие, как CakePHP.

22. Кэшируйте страницы, управляемые базой данных

Кэширование PHP-страниц, управляемых базой данных – отличная идея для улучшения скорости загрузки и производительности своего скрипта. В действительности не так уж трудно создать и извлечь статические файлы содержимого при помощи нашего доброго друга ob_start(). Вот пример, взятый со Snipe.net:

// TOP of your script $cachefile = "cache/".basename($_SERVER["SCRIPT_URI"]); $cachetime = 120 * 60; // 2 hours // Serve from the cache if it is younger than $cachetime if (file_exists($cachefile) && (time() - $cachetime < filemtime($cachefile))) { include($cachefile); echo ""; exit; } ob_start(); // start the output buffer // Your normal PHP script and HTML content here // BOTTOM of your script $fp = fopen($cachefile, "w"); // open the cache file for writing fwrite($fp, ob_get_contents()); // save the contents of output buffer to the file fclose($fp); // close the file ob_end_flush(); // Send the output to the browser

// TOP of your script

$cachefile = "cache/" . basename ($_SERVER [ "SCRIPT_URI" ] ) ;

$cachetime = 120 * 60 ; // 2 hours

// Serve from the cache if it is younger than $cachetime

if (file_exists ($cachefile ) && (time () - $cachetime < filemtime ($cachefile ) ) ) {

include ($cachefile ) ;

Для Него

b) только, когда нам надоест быть вместе;

c) пару раз в неделю такая мысль приходит…

a) вы рассказываете друг другу абсолютно обо всех своих страхах и мечтах;

3. В день вашего рождения ваша девушка:

a) знает без подсказки, что доставило бы вам удовольствие;

a) ваша девушка – самый увлекательный из всех известных вам людей;

5. Как вы ссоритесь?

6. Вы уверены, что ваша избранница – этото, что вам нужно?

7. Вы приходите домой после работы усталый и раздраженный. Ваша девушка:

a) к увлекательной беседе;

b) к новым знакомствам;

c) к встрече с новой любовью;

9. Вы случайно видите вашу девушку в объятьях другого. Вас беспокоит:

a) Ваша неспособность удовлетворить партнершу;

b) потерянная привлекательность для нее;

a) превосходная любящая пара;

1. Решив поужинать вне дома, легко ли вам договориться о том, где именно это сделать?

a) вам обоим нравятся одинаковые блюда и рестораны

b) некоторые ваши вкусы ваша избранница не разделяет. Придется пойти ей навстречу…

c) вам не нравится практически ни один ресторан из числа предложенных, и вы настаиваете на своем выборе

2. Насколько близки ваши политические взгляды?

a) вас часто даже удивляет, в какой мере вы идеологически близки

b) есть ряд политических вопросов, по которым вы не можете достичь согласия

c) на ваш взгляд в том, что касается политики, ваша любимая – наивный мечтатель

3. Налагают ли определенный отпечаток на ваши отношения культурные различия в происхождении?

a) вы оба уважаете культурные устои друг друга, вас восхищает возможность расширить ваш культурный горизонт с помощьюизбранницы?

b) культурные различия время от времени заставляют ощущать явный недостаток взаимопонимания

c) вы считаете, что ее странное поведение определяется происхождением

4. Согласны ли вы в том, как следует воспитывать детей?

a) ваша любовь друг к другу легко распространяется и на ваше потомство

b) каждый из вас более или менее терпимо относится к идеям другого

c) вы полагаете, что вам не следует иметь детей, поскольку их воспитание вызвало бы большие трения между вами

5. Является ли религиозность проблемой ваших отношений?

a) ни в коей мере – мы оба одной веры

b) есть некоторые различия, но вы договорились примириться с ними

c) ваши религиозные разногласия – основной источник ваших огорчений

6. Есть ли у вас разногласия по поводу расходования денег?

a) вы всегда приходите к согласию в вопросе о том, как распределять ваши средства

b) время от времени у вас происходят столкновения по денежным вопросам

c) вы считаете, что ваша девушка транжира?

7. Если бы ваша возлюбленная пригласил вас в театр или на концерт, вы бы:

a) с радостью ждали этого события

b) пошли бы с некоторыми условиями

c) предложили бы ей пойти без вас

8. Что вы думаете о вкусе вашей девушки в одежде?

a) она одевается с безукоризненным вкусом, как правило, чтобы вам понравиться

b) чаще всего она выглядит достойно

c) иногда вы так стыдитесь ее внешнего вида, что стараетесь делать вид, что пришли с кем-то другим

9. Как вы относитесь к ее подругам?

a) это очаровательные, достойные восхищения девушки

b) некоторые из ее друзей не вызывают у вас симпатии

c) вы предпочитаете общение со своими друзьями

10. Как, на ваш взгляд, должны быть распределены роли между мужчиной и женщиной

a) вы решаете жизненные проблемы по мере их возникновения и не видите необходимости распределять между собой обязанности в зависимости от пола

b) между вами есть взаимопонимание относительно того, кто из вас и за что несет ответственность

c) ваша дама, похоже, из средневековья, такие замшелые у нее представления по этому поводу

Для нее

1. Думали ли вы когда-нибудь о прекращении ваших отношений?

a) нет, было бы очень больно, если бы пришлось расстаться;

b) когда вы будете сыты по горло своим партнером;

c) чуть ли не каждый день

2. Насколько вы и ваш партнер доверяете друг другу?

a) вы рассказываете друг другу обо всех своих наиболее интимных страхах и мечтах;

b) и у вас, и у него есть в жизни такие вещи, которые каждый предпочел бы держать при себе;

c) ради сохранения отношений готовы обманывать.

3. В день вашего рождения ваш партнер:

a) интуитивно чувствует, что доставило бы вам удовольствие;

b) вероятно, купит вам что-нибудь такое, что потом придется обменять;

c) потратит кучу денег на нечто абсолютно неподходящее.

4. Любите ли вы побыть наедине?

a) ваш партнер – самый увлекательный из всех известных вам людей;

b) некоторый отдых друг от друга усилил бы вашу привязанность;

c) иногда стоит убежать от скуки, окружая себя знакомыми.

5. Как вы ссоритесь?

a) все несогласия проговариваются вслух и быстро разрешаются;

b) есть темы, обсуждения которых вам лучше избегать;

c) вы постоянно пререкаетесь по самым банальным вопросам.

6. Вы уверены, что ваш партнер – это хороший выбор?

a) никогда не встречали никого, кто приносил бы вам такое же удовлетворение;

b) жизнь – это компромисс, и вы вполне хорошо устроены;

c) можно сделать хорошую мину при плохой игре, может, подвернется что-нибудь получше.

7. Вы приходите домой после работы усталой и раздраженной. Ваш партнер:

a) понимает, что у вас плохое настроение и делает все возможное, чтобы отвлечь вас;

b) включит вам телевизор постарается некоторое время не попадаться вам на глаза;

c) обрушит на вас свои собственные проблемы

8. Отправляясь на вечеринку, вы всегда готовы:

a) к увлекательной беседе;

b) к новым знакомствам;

c) к замене своего партнера;

9. Вы случайно видите вашего партнера в объятьях с очень привлекательной особой. Вас беспокоит:

a) неспособность удовлетворить партнера;

b) потерянная привлекательность для него;

c) утрата материального благополучия;

10. Как в целом бы охарактеризовали бы ваши отношения?

a) превосходная любящая пара;

b) страстная любовь, но с явными спадами и подъемами?

c) это лучше, чем полное одиночество.

1. Насколько хорошо вы подходите друг другу по темпераменту?

a) индивидуальность партнера вас искренне радует

b) хотя у вас и разные темпераменты, вы, похоже, хорошо дополняете друг друга

c) ваши темпераменты полярны

2. Высоко ли вы оцениваете интеллект вашего партнера?

a) он не перестает удивлять вас своими обширными знаниями и глубокими прозрениями

b) хотя его интеллект и не сравнить с вашим, он компенсирует этот недостаток другими качествами

c) большой ум – это не то, что отличает вашего партнера

3. Что больше всего раздражает вас в вашем партнере?

a) вы видите в нем те же недостатки, что и в себе

b) частая смена настроений

c) его отвратительные привычки

4.Является ли чувство юмора основой вашей дружбы

a) всегда рады смеяться вместе

b) не всегда понятно, что показалось смешным вашему партнеру

c) редко находите смешным одно и то же

5. Любите ли вы путешествовать?

a) да, вам обоим нравится встреча с новым

b) вы оба довольны своей домашней жизнью

c) один из вас – неутомимый путешественник, а другой предпочитает побыть дома

6. Омрачаются ли ваши отношения взрывами раздражения?

a) вам легко ладить друг с другом

b) порой приходится сдерживать свое неудовольствие

c) ссоры и обычны, и тяжелы

7. Случаются ли у кого-нибудь из вас приступы депрессии?

a) обычно оба веселы и оптимистичны

b) если один из вас «проваливается» в дурное настроение, другому удается вывести его из этого состояния

c) вы вгоняете друг друга в депрессию

8. Существует ли у вас неявная иерархия?

a) да, но каждый из вас признает превосходство другого в определенных областях

b) один из вас доминирует во всем

c) между вами идет постоянная борьба за власть

9. Склонны ли вы к авантюрам

a) в равной мере

b) мужчина более склонен к новизне, чем женщина

c) женщина падка на сенсации, а мужчина от них бежит

10. Есть ли у вас страхи и беспокойство?

a) вобщем нет, вы оба довольно уравновешенны

b) один склонен беспокоиться по всякому поводу, но другой оказывает успокаивающее влияние

c) бывает, оба находитесь на грани нервного срыва

Каковы результаты? Суммируйте баллы по отдельности (a =3 b=2 c=1) . Сравните результаты свои и партнера, но помните, что ключик к отношениям по-прежнему в Ваших руках.

27 - 30 Вам исключительно повезло: у вас прекрасные отношения с партнером. Ваше совместное будущее представляется долгим и счастливым.

24-26 Ваши отношения вас вполне удовлетворяют и, по-видимому. Вам удастся счастливо поддерживать их достаточно долго. Чуть больше терпимости и внимания с вашей стороны отнюдь не повредят вашим отношениям. Не забывайте, что зрелая любовь – это готовность отдавать, не требуя взамен.

19 – 23 Ваши отношения довольно обычны, однако имеются явные признаки неудовлетворенности. Если вы еще не вступили в брак, вам нужно как следует подумать, прежде чем принять такое решение. Если вы уже обзавелись семьей, полезно спросить себя, не улучшатся ли ваши отношения, если вы попробуете приложить чуть больше усилий и проявлять чуть меньше эгоизма. Возможно, стоит проанализировать свои ответы на вопросы теста с семейным терапевтом.