Всем привет. Подключаю файл include_once('с функцией'); Стоит в бесконечно обновляемом цикле. После второго её вызова выдает ошибку которая всем встречалась Fatal error: Cannot redeclare function. Как мне сделать так, чтоб я её вызывал бесконечное кол-во раз и она не плевалась?
PHP: <? // error_reporting(0); function APInow($domen){ $f = fopen("bdstatus/APInowstatus.txt", 'w'); // ftruncate($f, 0); //очищает файл перед записью if ( (preg_match('/^[A-Za-z0-9]*\.com$/', $domen )) or (preg_match('/^[A-Za-z0-9]*\.net$/', $domen )) or (preg_match('/^[A-Za-z0-9]*\.org$/', $domen )) ) { $kei = preg_replace('/\..*/','', $domen); $ind = preg_replace('/.*\./','', $domen); function Resseler($params) { $curl = curl_init(); // Set some options - we are passing in a useragent too here curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_URL => 'https://test.httpapi.com/api/domains/available.json?'.http_build_query($params), CURLOPT_USERAGENT => 'Codular Sample cURL Request' )); // Send the request & save response to $resp $resp = curl_exec($curl); // Close request to clear up some resources curl_close($curl); $decodedText = html_entity_decode($resp); $myArray = json_decode($decodedText, true); return $myArray; } $post_data = array( 'auth-userid' => "160", 'api-key' => "EDF2qnhOpQzzs4obUL7y", 'domain-name' => $kei, 'tlds' => $ind, 'suggest-alternative' => ''); $data = Resseler($post_data); foreach ($data as $key => $value) { // echo $key.'</br>'; //выводит название домена fwrite($f, $key."\r\n"); foreach ($data[$key] as $key2 => $value2) { if($key2 == 'status'){ // echo $key2.' = '.$value2.';'.'<br/>'; fwrite($f, $key2.' = '.$value2.';'."\r\n"); }} }} fclose($f); }
Этот код рабочий, и что он выполняет? Протестировал не чего не вывел код, как ты его вызываешь в файле и ты инклудишь этот код на той странице где вызываешь эту функцию?
Все работает. Но появляется ошибка после нескольких вызовов 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
вот и ищите проблему в скрипте C:\OSPanel\domains\localhost\blocks\APInow.php --- Добавлено --- а так, вы создаете функцию которая уже создана
@gazlevodiva Походу у тебя в регулярном выражении ошибка: PHP: $kei = preg_replace('/\..*/','', $domen); $ind = preg_replace('/\..*/','', $domen); $kei = preg_replace('/.*\./','', $domen); $ind = preg_replace('/.*\./','', $domen); попробуй 2 первых или 2 последних выражения. Спойлер: Инфо-код PHP: <?php ini_set('display_errors',1); error_reporting(E_ALL); function APInow($domen){ $f = fopen("bdstatus/APInowstatus.txt", 'w'); // ftruncate($f, 0); //очищает файл перед записью if ( (preg_match('/^[A-Za-z0-9]*\.com$/', $domen )) or (preg_match('/^[A-Za-z0-9]*\.net$/', $domen )) or (preg_match('/^[A-Za-z0-9]*\.org$/', $domen )) ) { $kei = preg_replace('/\..*/','', $domen);//1 выражение $ind = preg_replace('/\..*/','', $domen);//1 выражение $kei = preg_replace('/.*\./','', $domen);//2 выражение $ind = preg_replace('/.*\./','', $domen);//2 выражение function Resseler($params) { $curl = curl_init(); // Set some options - we are passing in a useragent too here curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_URL => 'https://test.httpapi.com/api/domains/available.json?'.http_build_query($params), CURLOPT_USERAGENT => 'Codular Sample cURL Request' )); // Send the request & save response to $resp $resp = curl_exec($curl); // Close request to clear up some resources curl_close($curl); $decodedText = html_entity_decode($resp); $myArray = json_decode($decodedText, true); return $myArray; } $post_data = array( 'auth-userid' => "160", 'api-key' => "EDF2qnhOpQzzs4obUL7y", 'domain-name' => $kei, 'tlds' => $ind, 'suggest-alternative' => ''); $data = Resseler($post_data); foreach ($data as $key => $value) { // echo $key.'</br>'; //выводит название домена fwrite($f, $key."\r\n"); foreach ($data[$key] as $key2 => $value2) { if($key2 == 'status'){ // echo $key2.' = '.$value2.';'.'<br/>'; fwrite($f, $key2.' = '.$value2.';'."\r\n"); } } } } fclose($f); }
сегодня прочитал про эту функцию думал лучше промолчу, да и вообще уже 1 месяц а может 2 не программировал)
да эти танки затягивают жестоко, у меня принцип такой пока не сделаю что надумал не отступлю. Все что хотел сделал, даже больше, сейчас же появились не отложенные дела. Как поживаешь зверь? Что нового узнал за все мое отсутствие?
Тему загляни https://php.ru/forum/threads/70658/ там код маленький. Попробуй на норм переписать фрагмент кода, чтобы запостить. Написал? Не выкладывай, а сотри свой код в ноль. Закрой все окна на рабочем столе, и просто смотри на дисплей, одупляйся тупыми глазами. Как оно ?
Данная тема мне не ясна, а может и некогда спать пошел, завтра загляну. Если честно не понял вроде не как.
@gazlevodiva возможно, другая функция с таким именем есть в другом файле. @MouseZver а я не донатил http://ratings.tankionline.com/ru/user/5ech6/ правда давно это было