За последние 24 часа нас посетили 24097 программистов и 1677 роботов. Сейчас ищут 1805 программистов ...

Двойное объявление функции FATAL error

Тема в разделе "PHP для новичков", создана пользователем gazlevodiva, 10 май 2018.

  1. gazlevodiva

    gazlevodiva Новичок

    С нами с:
    22 фев 2018
    Сообщения:
    19
    Симпатии:
    0
    Всем привет. Подключаю файл include_once('с функцией'); Стоит в бесконечно обновляемом цикле. После второго её вызова выдает ошибку которая всем встречалась Fatal error: Cannot redeclare function.
    Как мне сделать так, чтоб я её вызывал бесконечное кол-во раз и она не плевалась?
     
  2. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @gazlevodiva
    Покажи функцию, что в ней находится.
     
  3. gazlevodiva

    gazlevodiva Новичок

    С нами с:
    22 фев 2018
    Сообщения:
    19
    Симпатии:
    0
    PHP:
    1. <?
    2. // error_reporting(0);
    3.   function APInow($domen){
    4. $f = fopen("bdstatus/APInowstatus.txt", 'w');
    5. // ftruncate($f, 0); //очищает файл перед записью
    6.     if (
    7.             (preg_match('/^[A-Za-z0-9]*\.com$/', $domen ))
    8.         or (preg_match('/^[A-Za-z0-9]*\.net$/', $domen ))
    9.         or (preg_match('/^[A-Za-z0-9]*\.org$/', $domen ))
    10.     ) {  
    11.      $kei = preg_replace('/\..*/','', $domen);
    12.      $ind = preg_replace('/.*\./','', $domen);
    13.  
    14.  
    15.  
    16.     function Resseler($params)
    17.      {
    18.         $curl = curl_init();
    19.         // Set some options - we are passing in a useragent too here
    20.         curl_setopt_array($curl, array(
    21.             CURLOPT_RETURNTRANSFER => 1,
    22.             CURLOPT_URL => 'https://test.httpapi.com/api/domains/available.json?'.http_build_query($params),
    23.             CURLOPT_USERAGENT => 'Codular Sample cURL Request'
    24.         ));
    25.         // Send the request & save response to $resp
    26.         $resp = curl_exec($curl);
    27.         // Close request to clear up some resources
    28.         curl_close($curl);
    29.         $decodedText = html_entity_decode($resp);
    30.         $myArray = json_decode($decodedText, true);
    31.         return $myArray;
    32.     }
    33.      
    34.     $post_data = array(
    35.         'auth-userid' => "160",
    36.         'api-key' => "EDF2qnhOpQzzs4obUL7y",
    37.         'domain-name' => $kei,
    38.         'tlds' => $ind,
    39.         'suggest-alternative' => '');
    40.     $data = Resseler($post_data);
    41.         foreach ($data as $key => $value) {
    42.             // echo $key.'</br>';    //выводит название домена    
    43.                      fwrite($f, $key."\r\n");
    44.         foreach ($data[$key] as $key2 => $value2) {
    45.             if($key2 == 'status'){
    46.             // echo $key2.' = '.$value2.';'.'<br/>';
    47.              fwrite($f, $key2.' = '.$value2.';'."\r\n");
    48.             }}
    49.         }}  fclose($f);
    50.     }
     
  4. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    Этот код рабочий, и что он выполняет?
    Протестировал не чего не вывел код, как ты его вызываешь в файле и ты инклудишь этот код на той странице где вызываешь эту функцию?
     
    #4 _ne_scaju_, 10 май 2018
    Последнее редактирование: 10 май 2018
  5. gazlevodiva

    gazlevodiva Новичок

    С нами с:
    22 фев 2018
    Сообщения:
    19
    Симпатии:
    0
    Все работает. Но появляется ошибка после нескольких вызовов
    Fatal error: Cannot redeclare Resseler() (previously declared in C:\OSPanel\domains\localhost\blocks\APInow.php:14) in C:\OSPanel\domains\localhost\blocks\APInow.php on line 14
     
  6. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.794
    Симпатии:
    1.331
    Адрес:
    Лень
    вот и ищите проблему в скрипте
    C:\OSPanel\domains\localhost\blocks\APInow.php
    --- Добавлено ---
    а так, вы создаете функцию которая уже создана
     
  7. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @gazlevodiva
    Походу у тебя в регулярном выражении ошибка:
    PHP:
    1.      
    2.         $kei = preg_replace('/\..*/','', $domen);
    3.         $ind = preg_replace('/\..*/','', $domen);    
    4.         $kei = preg_replace('/.*\./','', $domen);
    5.         $ind = preg_replace('/.*\./','', $domen);
    попробуй 2 первых или 2 последних выражения.
    PHP:
    1. <?php
    2. ini_set('display_errors',1);
    3.  
    4. function APInow($domen){
    5.     $f = fopen("bdstatus/APInowstatus.txt", 'w');
    6.     // ftruncate($f, 0); //очищает файл перед записью
    7.     if (
    8.         (preg_match('/^[A-Za-z0-9]*\.com$/', $domen ))
    9.         or (preg_match('/^[A-Za-z0-9]*\.net$/', $domen ))
    10.         or (preg_match('/^[A-Za-z0-9]*\.org$/', $domen ))
    11.     ) {
    12.         $kei = preg_replace('/\..*/','', $domen);//1 выражение
    13.         $ind = preg_replace('/\..*/','', $domen);//1 выражение      
    14.         $kei = preg_replace('/.*\./','', $domen);//2 выражение
    15.         $ind = preg_replace('/.*\./','', $domen);//2 выражение
    16.  
    17.  
    18.         function Resseler($params)
    19.         {
    20.             $curl = curl_init();
    21.             // Set some options - we are passing in a useragent too here
    22.             curl_setopt_array($curl, array(
    23.                 CURLOPT_RETURNTRANSFER => 1,
    24.                 CURLOPT_URL => 'https://test.httpapi.com/api/domains/available.json?'.http_build_query($params),
    25.                 CURLOPT_USERAGENT => 'Codular Sample cURL Request'
    26.             ));
    27.             // Send the request & save response to $resp
    28.             $resp = curl_exec($curl);
    29.             // Close request to clear up some resources
    30.             curl_close($curl);
    31.             $decodedText = html_entity_decode($resp);
    32.             $myArray = json_decode($decodedText, true);
    33.             return $myArray;
    34.         }
    35.  
    36.         $post_data = array(
    37.             'auth-userid' => "160",
    38.             'api-key' => "EDF2qnhOpQzzs4obUL7y",
    39.             'domain-name' => $kei,
    40.             'tlds' => $ind,
    41.             'suggest-alternative' => '');
    42.         $data = Resseler($post_data);
    43.         foreach ($data as $key => $value) {
    44.             // echo $key.'</br>';    //выводит название домена  
    45.             fwrite($f, $key."\r\n");
    46.             foreach ($data[$key] as $key2 => $value2) {
    47.                 if($key2 == 'status'){
    48.                     // echo $key2.' = '.$value2.';'.'<br/>';
    49.                     fwrite($f, $key2.' = '.$value2.';'."\r\n");
    50.                 }
    51.             }
    52.         }
    53.     }
    54.     fclose($f);
    55. }
     
  8. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.585
    Симпатии:
    1.762
    function_exists, но лучше переписать алгоритм так, чтоб не приходилось включать файл в цикле
     
  9. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    сегодня прочитал про эту функцию :D думал лучше промолчу, да и вообще уже 1 месяц а может 2 не программировал)
     
  10. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.794
    Симпатии:
    1.331
    Адрес:
    Лень
    [vs] нравится это.
  11. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @MouseZver
    а ты знаешь что-то в тебе есть такое, ты случаем не ясновидец? :D
     
  12. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.794
    Симпатии:
    1.331
    Адрес:
    Лень
    @_ne_scaju_, не, карты так сложились
     
  13. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    да эти танки затягивают жестоко, у меня принцип такой пока не сделаю что надумал не отступлю.
    Все что хотел сделал, даже больше, сейчас же появились не отложенные дела.
    Как поживаешь зверь? Что нового узнал за все мое отсутствие?
     
  14. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.794
    Симпатии:
    1.331
    Адрес:
    Лень
    Тему загляни https://php.ru/forum/threads/70658/ там код маленький.
    Попробуй на норм переписать фрагмент кода, чтобы запостить.
    Написал?
    Не выкладывай, а сотри свой код в ноль.
    Закрой все окна на рабочем столе, и просто смотри на дисплей, одупляйся тупыми глазами.
    Как оно ?:)
     
  15. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    Данная тема мне не ясна, а может и некогда спать пошел, завтра загляну.
    Если честно не понял :D вроде не как.
     
  16. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632