PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (5): [1] 2 3 4 5 »

> Найдено сообщений: 67
Нуб-2 Отправлено: 17 Сентября, 2017 - 19:11:27 • Тема: Выполнение функций по каждому эл. массива • Форум: Вопросы новичков

Ответов: 3
Просмотров: 204
Vladimir Kheifets пишет:
Нуб-2 пишет:
Доброго времени суток.
Есть массив, который я получаю из функции вида с несколькими значениями (1,2,3,4,5).

Как мне применить к каждому значению несколько функций? Что-то не получается так:
(скрин дичи ниже)

Спойлер (Отобразить)


Доброе утро!
Советую Вам для начала посмотреть содержимое массивов, которые выдают функции.
Обратите внимание на предупреждение на http://php.net/manual/ru/function.list.php
Цитата:
Внимание
В PHP 5 list() присваивает значения начиная с самого правого. В PHP 7 list() - с самого левого.
Если вы используете обычные переменные, можете не думать об этом, но, если вы используете массивы с индексами, вы ожидаете, что порядок элементов в массиве будет ровно таким, как вы его определили в list(), слева направо, но в PHP 5 вы получите обратный порядок.
Вообще говоря, желательно не полагаться на конкретный порядок операций, так как будущем это поведение может быть изменено.



хмм, ваша ссылка ничем не помогла, если честно. Аналогичный кусок кода с листами работает спокойно в другом месте
Нуб-2 Отправлено: 17 Сентября, 2017 - 03:32:16 • Тема: Выполнение функций по каждому эл. массива • Форум: Вопросы новичков

Ответов: 3
Просмотров: 204
Доброго времени суток.
Есть массив, который я получаю из функции вида с несколькими значениями (1,2,3,4,5).

Как мне применить к каждому значению несколько функций? Что-то не получается так:
(скрин дичи ниже)

PHP:
скопировать код в буфер обмена
  1. for ($i = 0; $i <= count($kek); $i++) {
  2.     $steamIdFromForm = $kek[$i];
  3.  
  4.     list($statVisits, $statFavs, $statGuideCreate, $statGuideUpdate) = statLoad($steamIdFromForm);
  5.     $pagename = page_title($steamIdFromForm);
  6.     list($dbVisits, $dbFavs) = loadOldData($steamIdFromForm);
  7.     $dbAdd = addToDB($steamIdFromForm, $statVisits, $statFavs, $pagename, $statGuideCreate, $statGuideUpdate);
  8.  
  9.     $newVisits = $statVisits - $dbVisits;
  10.     $newFavs = $statFavs - $dbFavs;
  11.     $answer = array(
  12.         "ID руководства:" => $steamIdFromForm,
  13.         "Название руководства:" => "<a href=$configGuideStandartLink$steamIdFromForm>$pagename</a>",
  14.         "Дата создания руководства: " => "$statGuideCreate",
  15.         "Дата последнего обновления: " => "$statGuideUpdate",
  16.         "Всего просмотров руководства:" => "$statVisits (+<b>$newVisits</b>)",
  17.         "Всего добавлений в избранное:" => "$statFavs (+<b>$newFavs</b>)"
  18.     );
  19.     new dBug($answer);
  20.     unset($steamIdFromForm);
  21.     unset($statVisits);
  22.     unset($statFavs);
  23.     unset($statGuideCreate);
  24.     unset($statGuideUpdate);
  25.     unset($pagename);
  26.     unset($steamIdFromForm);
  27.     unset($dbVisits);
  28.     unset($dbFavs);
  29.     unset($newVisits);
  30.     unset($newFavs);
  31.     unset($answer);
  32. }
  33.  
Нуб-2 Отправлено: 05 Сентября, 2017 - 19:18:02 • Тема: PDO • Форум: Вопросы новичков

Ответов: 2
Просмотров: 222
До определенного момента все работало, после того, как сделал условия, перестало :с
Ошибок не выдает, но с базой ничего не делает ни в одном из вариантов.
PHP:
скопировать код в буфер обмена
  1. function addToDB($funcSteamId, $funcSteamVisits, $funcSteamFavs) {
  2.  
  3.     $connection = new PDO('mysql:host=localhost;dbname=dev', 'root', 'root');
  4.  
  5.     $query = $connection->prepare("SELECT COUNT(steamID) FROM guidesStats WHERE steamID=:inputID");
  6.     $query->execute(array(':inputID' => $funcSteamId));
  7.     $result = $query->fetchAll();
  8.  
  9.     if ($result[0][0] == 1) {
  10.         echo "Запись с таким steamID уже существует, обновляю данные...";
  11.         $affectedRows = $connection->prepare('INSERT INTO guidesStats WHERE steamID=:inputID (visitors,favs) VALUES (:inputVisits, :inputFavs)');
  12.         $affectedRows->execute(array(':inputID' => $funcSteamId, ':inputVisits' => $funcSteamVisits, ':inputFavs' => $funcSteamFavs));
  13.     }
  14.     if ($result[0][0] < 1) {
  15.         $affectedRows = $connection->exec('INSERT INTO guidesStats (steamID,visitors,favs) VALUES (' . $funcSteamId . ',' . $funcSteamVisits . ',' . $funcSteamFavs . ')');
  16.         echo "Добавлена запись в БД";
  17.     }
  18.     if ($result[0][0] > 1) {
  19.         echo "В БД >1 записи";
  20.     }
  21.     return 0;
  22. }


Примеры var_dump($result):
Для $funcSteamId = 1
CODE (htmlphp):
скопировать код в буфер обмена
  1. array(1) { [0]=> array(2) { ["COUNT(steamID)"]=> string(1) "3" [0]=> string(1) "3" } }

Для $funcSteamId = 7
CODE (htmlphp):
скопировать код в буфер обмена
  1. array(1) { [0]=> array(2) { ["COUNT(steamID)"]=> string(1) "0" [0]=> string(1) "0" } }

Для $funcSteamId = 1120193385
CODE (htmlphp):
скопировать код в буфер обмена
  1. array(1) { [0]=> array(2) { ["COUNT(steamID)"]=> string(1) "1" [0]=> string(1) "1" } }
Нуб-2 Отправлено: 05 Сентября, 2017 - 16:07:43 • Тема: Парсинг данных • Форум: Вопросы новичков

Ответов: 10
Просмотров: 657
При том, что при неправильном запросе и NULL данных, он нормально записывает в бд
id steamID visitors favs
3 1 0 0
(Добавление)
Вопрос закрыт, удалил этот говнокод и сделал заново через pdo Радость
Нуб-2 Отправлено: 05 Сентября, 2017 - 00:18:02 • Тема: Парсинг данных • Форум: Вопросы новичков

Ответов: 10
Просмотров: 657
andrewkard пишет:
Нуб-2 пишет:
Помогите спарсить цифры с панели справа, пожалуйста

PHP:
скопировать код в буфер обмена
  1.  
  2. foreach($html->find('.stats_table td') as $element){
  3.     echo $element->innertext . '<br>';
  4. }
  5.  


Спасибо большое!!

Теперь вопрос по БД Недовольство, огорчение

Не хочет никак записывать в бд
PHP:
скопировать код в буфер обмена
  1. function statLoad($id, $needToAddToBase) {
  2.  
  3.     $link = 'http://steamcommunity.com/sharedfiles/filedetails/?id=' . $id;
  4.  
  5.  
  6.     $html = file_get_html($link);
  7.     $i = 0;
  8.  
  9.     foreach ($html->find('.stats_table td') as $element) {
  10.  
  11.         if (is_numeric($element->innertext)) {
  12.             $i++;
  13.             if ($i == 1) {
  14.                 $funcSteamVisitors = $element->innertext;
  15.             }
  16.             if ($i == 2) {
  17.                 $funcFavs = $element->innertext;
  18.             }
  19.             //
  20.             //     echo $num ." число " . $element->innertext . '<br>';
  21.             //echo $element->innertext . '<br>';
  22.         }
  23.     }
  24.     if ($needToAddToBase == 0) {
  25.         #то ничего
  26.    } else {
  27.         /*
  28.          * MYSQL конфигурация
  29.          */
  30.         $configMySqlHost = 'localhost'; // адрес сервера
  31.         $configMySqlDatabase = 'dev'; // имя базы данных
  32.         $configMySqlUser = 'root'; // имя пользователя
  33.         $configMySqlPassword = 'root'; // пароль
  34.  
  35.         $mysqllink = mysqli_connect($configMySqlHost, $configMySqlUser, $configMySqlPassword, $configMySqlDatabase);
  36.  
  37.  
  38.         $result = mysqli_query($mysqllink, "SELECT * FROM guidesStats WHERE steamID = '" . $id . "'");
  39.         $row = @mysqli_fetch_array($result);
  40.         if (!$row['id']) {
  41.             echo $row['id'];
  42.         } else {
  43.             if (mysqli_query($mysqllink, "INSERT INTO `guidesStats` (`steamID`, `visitors`, `favs`) VALUES ('" . $id . "', '" . $funcSteamVisitors . "', '" . $funcFavs . "')") === TRUE) {
  44.                 //$sql = "INSERT INTO `guidesStats` (`steamID`, `visitors`, `favs`) VALUES (\'1\', \'2\', \'3\')";
  45.                 echo "Запись успешно добавлена в таблицу";
  46.             } else {
  47.                 'Запись не добавлена в таблицу :(';
  48.                 echo mysqli_error();
  49.             }
  50.         }
  51.     }
  52.  
  53.     return array($funcSteamVisitors, $funcFavs);
  54. }


Сама бд выглядит так https://i[dot]paste[dot]pics/4a076ecf2ca[dot][dot][dot]daf64501caa1[dot]png
Нуб-2 Отправлено: 02 Сентября, 2017 - 22:21:41 • Тема: Парсинг данных • Форум: Вопросы новичков

Ответов: 10
Просмотров: 657
andrewkard пишет:
Нуб-2
Там нет такой строки: <table\ class="stats_table"><tbody><tr><td>
Кроме того, у Вас ошибка, которую подсвечивает даже форум, какой IDE пользуетесь?
"<table\ class="stats_table"><tbody><tr><td>(\d+)</td>"
Для парсинга лучше воспользоваться готовой библиотекой, например http://simplehtmldom.sourceforge.net/


Я пользуюсь Sublime Text 3 Beta, в кач-ве сервера MAMP.
А в чем конкретно ошибка? Не вижу :с
С конкретно этой библиотекой у меня не сошлось что-то Недовольство, огорчение

(Случайно не слеш после table? Однако Закатив глазки )
(Добавление)
С этой библиотекой у меня даже пример не работает, лол
Спойлер (Отобразить)

(Добавление)
О, я проблему с библиотекой рандомно решил Не понял
(Добавление)
Но вопрос с ровным парсингом остался Недовольство, огорчение
Подозреваю, что что-то с регуляркой
(Добавление)
Вот такое, аналогичное примеру, не работает Хм
PHP:
скопировать код в буфер обмена
  1. <?
  2. include("simple_html_dom.php");
  3.  
  4. // Create DOM from URL or file
  5. $html = file_get_html('http://steamcommunity.com/sharedfiles/filedetails/?id=1120193385');
  6.  
  7.  
  8. foreach($html->find('a') as $element)
  9.        echo $element->src . '<br>';

(Добавление)
Господи, я идиот, там не scr должно быть, лол
(Добавление)
Но вопрос про парсинг висит :с
(Добавление)
Помогите спарсить цифры с панели справа, пожалуйста Недовольство, огорчение
Где избранное и посетители
Спойлер (Отобразить)
Нуб-2 Отправлено: 02 Сентября, 2017 - 20:03:29 • Тема: Парсинг данных • Форум: Вопросы новичков

Ответов: 10
Просмотров: 657
Строитель пишет:
Нуб-2 пишет:
А как эти же значения спарсить с сайта?
Попробуйте с помощью CURL


Я отсталый, но почему не работает?
PHP:
скопировать код в буфер обмена
  1.  function page_visitors($url){
  2.         $fp2 = file_get_contents($url);
  3.         if (!$fp2)
  4.             return null;
  5.         $res2 = preg_match("<table\ class="stats_table"><tbody><tr><td>(\d+)</td>", $fp2, $visitors_matches);
  6.         if (!$res2)
  7.             return null;
  8.         return $res2;
  9.     }
  10. print page_visitors("http://steamcommunity.com/sharedfiles/filedetails/?id=1120193385");
Нуб-2 Отправлено: 31 Августа, 2017 - 19:10:29 • Тема: Парсинг данных • Форум: Вопросы новичков

Ответов: 10
Просмотров: 657
Строитель пишет:
Нуб-2
Спойлер (Отобразить)


Спасибо. А как эти же значения спарсить с сайта?
Через simpleHTMLdom у меня не получается :с
Нуб-2 Отправлено: 29 Августа, 2017 - 22:04:01 • Тема: Парсинг данных • Форум: Вопросы новичков

Ответов: 10
Просмотров: 657
Добрый день. В странице есть такой код, как спарсить данные из него?
две даты из div class="detailsStatRight" и еще 2 цифры из таблицы.
CODE (html):
скопировать код в буфер обмена
  1. <div class="panel">
  2. <div class="hr padded"></div>   <div class="rightDetailsBlock">
  3. <div class="hr padded"></div>
  4. <div class="rightDetailsBlock">
  5. <div class="detailsStatsContainerLeft">
  6. <div class="detailsStatLeft">Posted </div>
  7. <div class="detailsStatLeft">Updated </div>
  8. </div>
  9. <div class="detailsStatsContainerRight">
  10. <div class="detailsStatRight">25 Aug @ 7:39pm</div>
  11. <div class="detailsStatRight">29 Aug @ 5:51am</div>
  12. </div>
  13. <div style="clear:left"></div>
  14. </div>
  15. </div>
  16.  
  17. <div class="panel">
  18. <table class="stats_table">
  19. <tbody><tr>
  20. <td>467</td>
  21. <td>Unique Visitors</td>
  22. </tr>
  23. <tr>
  24. <td>3</td>
  25. <td>Current Favorites</td>
  26. </tr>
  27. </tbody></table></div>
  28.  
Нуб-2 Отправлено: 12 Июля, 2017 - 21:00:18 • Тема: Выводит названия файлов, но не загружает. • Форум: Вопросы новичков

Ответов: 1
Просмотров: 113
Почему выводит названия файлов, но не грузит на сервер?
CODE (html):
скопировать код в буфер обмена
  1. <form id="form" name="upload" action="upload.php" method="POST" ENCTYPE="multipart/form-data">
  2.    Выберите файл для загрузки:
  3.    <input type="file" name="userfile[]"  multiple>
  4.    <input type="submit" name="upload" value="Загрузить">
  5. </form>
PHP:
скопировать код в буфер обмена
  1. <?
  2.    $uploads_dir = '/uploads';
  3.          if(isset($_POST['upload'])) {
  4.          for($i=0;$i<count($_FILES['userfile']['name']);$i++) {
  5.             if(!is_uploaded_file($_FILES['userfile']['tmp_name'][$i])) {
  6.                echo 'файл не загружен';
  7.             } else {
  8.                    $tmp_name = $_FILES['userfile']["tmp_name"][$key];
  9.                   echo move_uploaded_file($tmp_name, "$uploads_dir/$tmp_name");
  10.                   echo "<pre>";
  11.                echo $_FILES['userfile']['name'][$i];
  12.                  echo "/<pre>";
  13.             }
  14.          }
  15.       }
  16.    ?>
Нуб-2 Отправлено: 11 Июля, 2017 - 17:44:03 • Тема: обработка формы • Форум: Вопросы новичков

Ответов: 1
Просмотров: 104
Почему в первом варианте форма работает и выводит значение ID, а во втором нет?
И как сделать, чтобы второй вариант работал?
CODE (html):
скопировать код в буфер обмена
  1. <form id="dataAdd2"action="test.php" method="post">
  2.    <tr>
  3.       <td>ID:</td>
  4.       <td><input type="text" name="idform"></td>
  5.    </tr>
  6.    <tr>
  7.       <td>Город покупки:</td>
  8.       <td>
  9.          <select size="2" multiple name="formCity">
  10.             <option selected value="Москва">Москва</option>
  11.             <option value="Санкт-Петербург">Санкт-Петербург</option>
  12.          </select>
  13.       </td>
  14.    </tr>
  15.    <td colspan="2"><button type="submit" form="dataAdd2" class="btn btn-success">Добавить запись</button></td>
  16.    </tr>
  17. </form>
  18. <form class="form-horizontal" id="dataAdd" action="test.php" method="post">
  19.    <div class="form-group">
  20.       <label for="idform" class="col-sm-2 control-label">
  21.       ID:
  22.       </label>
  23.       <div class="col-sm-10">
  24.          <input type="text" class="form-control" id="idform" />
  25.       </div>
  26.    </div>
  27.    <div class="form-group">
  28.       <label for="formCity" class="col-sm-2 control-label">
  29.       Город покупки:
  30.       </label>
  31.       <div class="col-sm-10">
  32.          <select class="selectpicker" size="2" multiple name="formCity">
  33.             <option selected value="Москва">Москва</option>
  34.             <option value="Санкт-Петербург">Санкт-Петербург</option>
  35.          </select>
  36.       </div>
  37.    </div>
  38.    <div class="form-group">
  39.       <div class="col-sm-offset-2 col-sm-10">
  40.          <button type="submit" form="dataAdd" class="btn btn-success">Добавить запись</button>
  41.       </div>
  42.    </div>
  43. </form>
  44.  
PHP:
скопировать код в буфер обмена
  1. <?
  2. echo isset($_POST['idform']) ? $_POST['idform'] : '';
  3. echo isset($_POST['formCity']) ? $_POST['formCity'] : '';
  4. ?>
Нуб-2 Отправлено: 14 Мая, 2013 - 07:33:42 • Тема: Проблема с обработкой формы • Форум: Вопросы новичков

Ответов: 20
Просмотров: 898
Medallion, там всего-то 1 параметр, который итак верен.
Нуб-2 Отправлено: 14 Мая, 2013 - 07:29:18 • Тема: Include • Форум: Вопросы новичков

Ответов: 3
Просмотров: 119
Всем спасибо Улыбка
Нуб-2 Отправлено: 13 Мая, 2013 - 23:34:01 • Тема: Include • Форум: Вопросы новичков

Ответов: 3
Просмотров: 119
Как правильно написать include, чтобы файл, который находится в site.ru/other/main.php
Можно было включить как в site.ru/index.php, так и в site.ru/sec/test.php
Нуб-2 Отправлено: 10 Мая, 2013 - 17:11:43 • Тема: Запретить доступ к .php файлу • Форум: Вопросы новичков

Ответов: 12
Просмотров: 297
caballero пишет:

с чего бы им изменится?

попробуйте угадать.
Видимо, в этом файле идет определенная работа с бд, нет? Однако
(Добавление)
DelphinPRO пишет:
DelphinPRO пишет:
deny from all

напиши эту строчку в хтаксессе и доступ к этой папке и файлам в ней будет невозможен по http (через интернет). Посетитель будет упираться в 403 ошибку.
и не парься.

спс

Страниц (5): [1] 2 3 4 5 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB