За последние 24 часа нас посетили 62105 программистов и 1790 роботов. Сейчас ищут 897 программистов ...

Не работает кодировка

Тема в разделе "PHP для новичков", создана пользователем super-php, 14 мар 2013.

  1. super-php

    super-php Активный пользователь

    С нами с:
    8 мар 2013
    Сообщения:
    35
    Симпатии:
    0
    Файл index.php
    Код (Text):
    1.  
    2. echo 'Здравствуй!';
    3. if (!is_file('1.php'))
    4. file_put_contents("1.php",'<?php
    5. echo "Привет файл <b>1.php!<b> ";
    6. ?>');  
    Файл index.php сохранен в кодировке UTF-8 в Notepad проверял. При создании ФАЙЛА 1.php выводит на экран такое: аŸб€аИаВаЕб‚ б„аАаЙаЛ 1.php! хотя слово "Здравствуй!" в файле index.php выводит на русском. Как сделать чтобы в файле 1.php выводило русскими символами?

    Добавлено спустя 13 минут 26 секунд:
    Вот так помогло:

    Код (Text):
    1. <?php
    2. echo "Здравствуй!";
    3. if (!is_file('1.php'))
    4. file_put_contents("1.php","<?php header('Content-type: text/html; charset=utf-8');  
    5. echo 'Привет файл <b>1.php!<b> ';
    6. ?>");  
    7. ?>
    Добавлено спустя 18 минут 42 секунды:
    Хочу сгенерить 5 файлов с идентичным кодом, что-то не создаются файлы пхп.

    Код (Text):
    1. <?php
    2. echo "Здравствуй!";
    3.  
    4. for($i=1; $i<=5; $i++) {
    5. if (!is_file($i).".php") {
    6. file_put_contents($i,"<?php header('Content-type: text/html; charset=utf-8');  
    7. echo 'Привет файл <b>$i.'.php!'<b> ';
    8. ?>");  
    9. }
    10. }
    11.  
    12. ?>
     
  2. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    и не должны) логика нарушена))
     
  3. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    Код (PHP):
    1. file_put_contents("1.php","<?php header('Content-type: text/html; charset=utf-8'); 
    2. echo 'Привет файл <b>1.php!<b> ';
    3. ?>");
    Вот эта функция сработает совсем не так, как хотите.
    В PHP всё, что в двойных кавычках, обрабатывается, а это значит, в этом месте
    Код (PHP):
    1. "<?php header
    начинается новый фрагмент PHP кода, а не запишется строка. Аргументы желательно брать в одинарные кавычки, особенно, если там встречается последовательность
    Код (PHP):
    1. <?
    2. или
    3. <?php
    Кстати, а зачем тут header? :)
     
  4. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
  5. super-php

    super-php Активный пользователь

    С нами с:
    8 мар 2013
    Сообщения:
    35
    Симпатии:
    0
    Если написать так:
    Код (Text):
    1.  
    2. <?php
    3. header('Content-type: text/html; charset=utf-8');
    4. echo "Здравствуй!";
    5.  
    6. for($i=1; $i<=5; $i++) {
    7. if (!is_file($i).".php") {
    8. file_put_contents($i,'<?php  
    9. echo "Привет файл <b>$i.".php!."<b> "; ?>');  
    10. }
    11. }
    12.  
    13. ?>
    тоже 5 файлов не создаются пхп, а ещё пишет ошибку:
    Код (Text):
    1.  
    2.  
    3. Warning: Cannot modify header information - headers already sent by (output started at D:\server\super-php\test.ru\www\index.php:1) in D:\server\super-php\test.ru\www\index.php on line 2
    4. Здравствуй!
    Добавлено спустя 8 минут 9 секунд:
    Ура, вот так сработало:

    Код (Text):
    1. <?php
    2. echo 'Здравствуй!';
    3. $i = 1;
    4. while($i<=5){
    5. if (!is_file($i.'.php')){
    6. file_put_contents($i.'.php',"<?php header('Content-type: text/html; charset=utf-8');
    7. echo 'Привет файл <b>$i.'.php.'<b> !'; ?>"); $i++; }
    8. }
    9. ?>
     
  6. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7