[php] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. Skofield

    Skofield Elder - Старейшина

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    waik http://www.php.su/functions/?fopen
    Ниже приведен список возможных режимов для функции fopen.
     
  2. waik

    waik Elder - Старейшина

    Joined:
    2 Nov 2008
    Messages:
    405
    Likes Received:
    163
    Reputations:
    12
    Вот нацарапал небольшой гейт. Skofield спасибо.
    Приложение-клиент отправляет запрос на сервер с параметрами(имя файла, данные для записи в файл).
    Скрипт принимает эти данные, если такого файла нет то создает его, если есть то дописывает в него данные.

    php не знаю совсем (оно и видно :p )

    PHP:
    <?php
    if(isset($_GET['var1']) && isset($_GET['var2']) && !empty($_GET['var1']) && !empty($_GET['var2']) && !is_array($_GET['var1']) && !is_array($_GET['var2']))
    {

        
    // var 1 имя файла
        //  var 2 данные для записи
        
    $file=$_GET['var1'];  
        if( !
    file_exists($file)) {
            
    $fp fopen($file"w");
            
    fclose ($fp);
            }
        
        
    $string $_GET['var2']."\n";
        
    $h = @fopen($file'a');
        
    flock($hLOCK_EX);
        
    fwrite($h$string);
        
    flock($hLOCK_UN);
        
    fclose($h);
    }
    ?>
    Код пока не проверил, только что нацарапал. И сразу возник вопрос как средствами php выдать права 777 для возможности записи в в файл?
     
  3. Skofield

    Skofield Elder - Старейшина

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    http://www.php.su/functions/?chmod
     
  4. Edward

    Edward Banned

    Joined:
    11 Feb 2010
    Messages:
    329
    Likes Received:
    21
    Reputations:
    -1
    chmod
     
  5. waik

    waik Elder - Старейшина

    Joined:
    2 Nov 2008
    Messages:
    405
    Likes Received:
    163
    Reputations:
    12
    Большое спасибо Edward, Skofield. Теперь код модифицирован уже на ОДНУ строчку!

    PHP:
    <?php
    if(isset($_GET['var1']) && isset($_GET['var2']) && !empty($_GET['var1']) && !empty($_GET['var2']) && !is_array($_GET['var1']) && !is_array($_GET['var2']))
    {

        
    // var 1 имя файла
        //  var 2 данный для записи
        
    $file=$_GET['var1'];  
        if( !
    file_exists($file)) {
            
    $fp fopen($file"w");
            
    chmod($fp0755);
            
    fclose ($fp);
            }
        
        
    $string $_GET['var2']."\n";
        
    $h = @fopen($file'a');
        
    flock($hLOCK_EX);
        
    fwrite($h$string);
        
    flock($hLOCK_UN);
        
    fclose($h);
    }
    ?>
    С гейтом закончено. Теперь подскажите как сделать более- менее удобную читалку.
    -выбор нужного файла
    -открытие этого файла и обновление странички по мере добавления новых строк в файл.
     
    #20465 waik, 19 Apr 2012
    Last edited: 19 Apr 2012
  6. ~Krava~

    ~Krava~ New Member

    Joined:
    17 Apr 2012
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    file_get_contents() // для чтения
    file_put_contents('file.txt', FILE_APPEND) // для записи
     
  7. waik

    waik Elder - Старейшина

    Joined:
    2 Nov 2008
    Messages:
    405
    Likes Received:
    163
    Reputations:
    12
    ~Krava~ а как сделать обновление страницы если файл будет изменен?

    если Cron то он просто по таймеру будет перезагружать страницу, верно ? А это на мой взгляд не гуманно)
     
    #20467 waik, 19 Apr 2012
    Last edited: 19 Apr 2012
  8. ~Krava~

    ~Krava~ New Member

    Joined:
    17 Apr 2012
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    Можно после записи в файл сделать редирект на нужную страницу
    PHP:
    header('Location: site.com');
     
  9. waik

    waik Elder - Старейшина

    Joined:
    2 Nov 2008
    Messages:
    405
    Likes Received:
    163
    Reputations:
    12
    Запись в файл будет с клиентского приложения установленного на ПК.
     
  10. Eveline B.

    Eveline B. Banned

    Joined:
    20 Jan 2012
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0
    ob_clean();
    ob_start();
    ob_flush();
    и там еще что-то. не совсем понятно что ты хочешь.
    Может в самом софте настроить перезагрузку по обновлению?

    //Gifts: Идите обратно на чаны со своими картинками
     
    #20470 Eveline B., 20 Apr 2012
    Last edited by a moderator: 20 Apr 2012
  11. rAnt

    rAnt New Member

    Joined:
    20 Jun 2011
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Подскажите, как на php soap передать тип данных, для вот такого фрагмента wdsl файла:
    Code:
    <s:simpleType name="SE">
    <s:restriction base="s:string">
    <s:enumeration value="Yandex"/>
    <s:enumeration value="Google"/>
    </s:restriction>
    </s:simpleType>
     
  12. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    148
    Reputations:
    18
    Хола.
    Если есть в массиве строка - которая содержит троеточее...
    Как его можно сначала определить а потом удалить ?
    К примеру есть строка - Привет как дела...
    Нужно именно найти в массиве (т.е раньше обработать строку и убрать) вариант не подходит.

    Если юзать in array там вроде только по точному совпадению находит, а мне нужно -

    Если в строке находиться троеточие .... то удаляем массив.
     
  13. Edward

    Edward Banned

    Joined:
    11 Feb 2010
    Messages:
    329
    Likes Received:
    21
    Reputations:
    -1
    PHP:
    $flag false;
    foreach ( 
    $arr as $val ) {
       if ( 
    strstr'...' ) ) $flag true// Лучше проверять не функцией strstr, а той, которая ищет точное совпадение по рег. выражениями, т. к. в моем случае удалит массив, если в строке будет 3 и более подряд стоящих точек. но я не знаю рег. выражений =)
    }
    if ( 
    $flag == true ) unset($arr);
     
    #20473 Edward, 20 Apr 2012
    Last edited: 20 Apr 2012
    1 person likes this.
  14. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    148
    Reputations:
    18
    Спасибо, я уже решил :) я стропсом проверирил - и вставил continue :) что бы пропускало..
     
  15. AnGeI

    AnGeI Elder - Старейшина

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    Заинтересовался оптимизацией php скриптов при больших нагрузках, появился рад вопросов.
    Чем лучше транслировать php в байткод? Многие советуют bcompiler.
    Как отключить или минимизировать данные в глобальных массивах?
    И чего можно еще сделать и где об этом прочитать? Ничего годного не нашел, только обрывками.
     
    #20475 AnGeI, 21 Apr 2012
    Last edited: 21 Apr 2012
  16. ~Krava~

    ~Krava~ New Member

    Joined:
    17 Apr 2012
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    В случае если сайт планируется на большую посещаемость лучше использовать Python(Django) тогда с нагрузками будет все в порядке.

    Вот PHP увлекаюсь уже несколько лет но такое первый раз слышу.
    Для чего это нужно?
     
  17. AnGeI

    AnGeI Elder - Старейшина

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    Мне нужно, чтобы скрипт справлялся с большими объемами трафа, считай ТДС. Лучше или хуже дело относительное, мне нужно, чтобы под определенным количеством трафа сервер на лег. С джанго не работал и слабо верится, что это панацея.
     
  18. Metal-Core

    Metal-Core Member

    Joined:
    20 Sep 2011
    Messages:
    226
    Likes Received:
    22
    Reputations:
    0
    Как дать новое имя файлу при загрузке на сервак? пробывал c rename и т.д но не выходи(.
    PHP:
    <html>
      <table border='1' align='center' width='50%' >
        <tr><td>  
      <form action='upload.php' method='POST' enctype='multipart/form-data'>
      <input type='file' name='fname'>
      <input type='submit' name='ok' value='Загрузить'>
      </form>
        </td></tr>
    <?php
            $dir 
    "./img/New/";
            
            
    $name $_FILES['fname']['name'];
              
    $tmp =($_FILES['fname']['tmp_name']);     
              
    move_uploaded_file($tmp,$dir.$name);

            if (!empty(
    $tmp)){
            if (
    is_file($name)){ 
                echo 
    'Ok!';
                }else
                    echo 
    'Error<br>';        
    ?>
    </html>
     
  19. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Metal-Core
    PHP:
    move_uploaded_file($tmp,$dir.$name); 
    $name - это и есть имя файла получаемого, вместо него можете писать что хотите

    AnGeI Скачайте каждый из списка, да погоняйте на тестовой нагрузке.
    http://en.wikipedia.org/wiki/List_of_PHP_accelerators
     
    _________________________
  20. Metal-Core

    Metal-Core Member

    Joined:
    20 Sep 2011
    Messages:
    226
    Likes Received:
    22
    Reputations:
    0
    Да,и именно так я пробывал но не пошло..
    и
    PHP:
    move_uploaded_file($tmp,$dir.'file.jpg'); 
     
Thread Status:
Not open for further replies.