За последние 24 часа нас посетили 66888 программистов и 1639 роботов. Сейчас ищут 894 программиста ...

[color=#FF0000]Динамический файл стилей php[/color]

Тема в разделе "PHP для новичков", создана пользователем zahermaher, 27 сен 2014.

  1. zahermaher

    zahermaher Новичок

    С нами с:
    27 сен 2014
    Сообщения:
    169
    Симпатии:
    14
    Здравствуйте.
    Есть сайт на вордпресс ,в нем используются динамические стили(параметры стилей задаются через php)

    Возникла необходимость выводить результат работы php в отдельный файл css .

    Сами стили прекрасно генерируются,но вот с записью в css файл возникли проблемы.
    Вот сам код:

    Код (Text):
    1. <?php
    2. $post_info_widget_title_color = of_get_option('post_info_widget_title_color');
    3.  
    4. $output = '';
    5.  
    6. if ( $post_info_widget_title_color )
    7. $output .= '.widget_post_info .widget-title h4 { color:' . $post_info_widget_title_color . ' !important;}' . "\n";
    8.  
    9. $output .= '.widget_post_info .widget-title { border-bottom: 3px solid ' . $post_info_widget_title_color . ' !important; }' . "\n";
    10.  
    11. if ( isset( $output ) && $output != '' ) {
    12. $output = strip_tags( $output );
    13. $output = "<!--Custom Styling-->\n<style media=\"screen\" type=\"text/css\">\n" . $output . "</style>\n";
    14. echo $output;
    15. // начинаем проверку наличия файла и запись в него
    16. $file_name='style.css';
    17.     if(!file_exists($file_name)){
    18.     $fp=fopen("style.css", "a+");
    19.     fputs($fp, $output);
    20.     fclose($fp);
    21. }
    22. ?>

    помогите понять в чем ошибка, права на php 755 стоят, php файл и style.css находятся в одной папке
     
  2. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Re: Динамический файл стилей , генерирует файл css

    В лог смотрел?
    Хотя я же знаю ответ(((
     
  3. zahermaher

    zahermaher Новичок

    С нами с:
    27 сен 2014
    Сообщения:
    169
    Симпатии:
    14
    в access.log и error.log ничего особенного не нашел.

    неужели мой код правильный?
    я имею в виду эту часть кода:
    Код (Text):
    1. $file_name='style.css';
    2.     if(!file_exists($file_name)){
    3.    $fp=fopen("style.css", "a+");
    4.     fputs($fp, $output);
    5.     fclose($fp);
    6.    }
     
  4. zahermaher

    zahermaher Новичок

    С нами с:
    27 сен 2014
    Сообщения:
    169
    Симпатии:
    14
    может задать массив из засунуть туда все $output в файл массивом? мне ьы хотя бы небольшую подсказку как это сделать.
     
  5. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Хмм... тогда дебажить надо.
    Условие вообще выполняется? Может file_exists true возвращается. Тут 5 строчек кода, попытайся ннайти ошибку.
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Надо впхпшном логе смотреть. Он может быть отдельно.
     
  7. zahermaher

    zahermaher Новичок

    С нами с:
    27 сен 2014
    Сообщения:
    169
    Симпатии:
    14
    в общем лог я не нашел.
    попробовал так:
    Код (Text):
    1. <?php
    2. $out='12';
    3. $fp=fopen("style.css", "a+");
    4.  fwrite($fp, $out);
    5.  fclose($fp);
    6. ?>
    не работает,хотя 755 на php файл стоит,
    похоже дело в сервере.

    В общем весь сыр бор из-за этой темы: viewtopic.php?f=25&t=50153

    Может кто нибудь предложит нормальное решение к подключению динамических стилей в этой теме:http://php.ru/forum/viewtopic.php?f=25&t=50153

    Добавлено спустя 31 минуту 1 секунду:
    Код (Text):
    1.  
    2. <?php
    3. $post_info_widget_title_color = of_get_option('post_info_widget_title_color');
    4.  
    5. $output = '';
    6.  
    7. if ( $post_info_widget_title_color )
    8. $output .= '.widget_post_info .widget-title h4 { color:' . $post_info_widget_title_color . ' !important;}' . "\n";
    9.  
    10. $output .= '.widget_post_info .widget-title { border-bottom: 3px solid ' . $post_info_widget_title_color . ' !important; }' . "\n";
    11. // Output styles
    12. if ( isset( $output ) && $output != '' ) {
    13. $output = strip_tags( $output );
    14. $output = "<!--Custom Styling-->\n<style media=\"screen\" type=\"text/css\">\n" . $output . "</style>\n";
    15. $fp=fopen("style.css", "a+");
    16. fwrite($fp, $output);
    17. fclose($fp);
    18. echo $output;
    19. }
    20. ?>
    даже так стили через, echo $output; выводятся, но в style.css не записываются.
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Путь укажи точнее.