Ответы пользователя по тегу PHP
  • Почему при соединение с базами данных phpmyadmin выдает такую фигню?

    У вас ошибка маленькая
    $connection = mysql_connect
    НО
    $result = mysqli_query
    То есть одно просто mysql, а другое mysqli
    Ответ написан
    Комментировать
  • Как реализовать изменяемые настройки на php?

    Все настройки делаются через промежуточное хранилища, как базы данных, файлы...

    Например:
    //setting.php
    <?php
    //Проверяем, что был POST запрос
    if($_SERVER['REQUEST_METHOD'] === 'POST'){
    	//Преобразовываем данные из формы в integer 
    	$count = abs((int)$_POST['hello_count']);
    	
    	//Сохраняем полученную цифру в файл
    	file_put_contents('settings', $count);
    }
    ?>
    
    <!doctype html>
    <html lang="en-US">
    <head>
    	<meta charset="UTF-8">
    	<title></title>
    </head>
    <body>
    <form action="" method="post" style="width: 250px; margin: 0 auto">
    	<input type="text" name="hello_count"/>
    	<input type="submit" name="save" value="Сохранить!"/>
    </form>
    </body>
    </html>


    //script.php
    <?php
    
    //Если файл есть, то берём из него настройки и помещаем в переменную, иначе присваиваем 1000
    $count = file_exists('settings') ? file_get_contents('settings') : 1000;
    
    //делаем цицл на количество итераций, которые указаны в файле настроек
    for($i = 0; $i < $count; $i++){
    	echo 'привет <br>';
    }
    Ответ написан
    Комментировать
  • Не работает наследование. Где ошибка?

    Так как у вас ShopProductWriter наследуется от ShopProduct, а там, в свою очередь, в конструкторе явно указано, что при создании объекта надо передать дополнительные параметры
    function __construct ($title, $firstName, $mainName, $price, $numPages = 0, $playLength = 0)

    То есть вызов должен быть таким
    $writer = new ShopProductWriter("Wishmaster", "Группа", "Nightwish", "50 $", null, "70 min");
    $product2 = new CDProduct ("Wishmaster", "Группа", "Nightwish", "50 $", null, "70 min");
    $writer->write($product2);
    Ответ написан
    3 комментария
  • Возможно ли слово в именительном падеже перевести в родительный(или любой другой) на PHP?

    Знаю, что есть библиотека morpher
    Так же есть API у них на сайте.
    P.S. сам не пользовался
    Ответ написан
    Комментировать
  • Можно ли функцией, которая находится в одном файле, воспользоваться в другом?

    Не подключая файл, то есть не делая include или require этого файла воспользоваться функцией из него нельзя.
    Ответ написан
  • Как обернуть текст в теги p?

    В cakephp есть хелпер один на эту тему, может поможет

    /**
         * Formats paragraphs around given text for all line breaks
         *  <br /> added for single line return
         *  <p> added for double line return
         *
         * @param string $text Text
         * @return string The text with proper <p> and <br /> tags
         * @link http://book.cakephp.org/3.0/en/views/helpers/text.html#converting-text-into-paragraphs
         */
        public function autoParagraph($text)
        {
            if (trim($text) !== '') {
                $text = preg_replace('|<br[^>]*>\s*<br[^>]*>|i', "\n\n", $text . "\n");
                $text = preg_replace("/\n\n+/", "\n\n", str_replace(["\r\n", "\r"], "\n", $text));
                $texts = preg_split('/\n\s*\n/', $text, -1, PREG_SPLIT_NO_EMPTY);
                $text = '';
                foreach ($texts as $txt) {
                    $text .= '<p>' . nl2br(trim($txt, "\n")) . "</p>\n";
                }
                $text = preg_replace('|<p>\s*</p>|', '', $text);
            }
    
            return $text;
        }
    Ответ написан
    Комментировать
  • Какая функция php убирает все нунужные символы из строки при создании папки в windows?

    Реализованных функций в ядре нету, но есть много самописных, к примеру, я использую для именования функцию транслитерации, она, так же, убирает левые символы:

    protected function _rus2translit($string) {
    		$converter = array(
    				'а' => 'a',   'б' => 'b',   'в' => 'v',
    				'г' => 'g',   'д' => 'd',   'е' => 'e',
    				'ё' => 'e',   'ж' => 'zh',  'з' => 'z',
    				'и' => 'i',   'й' => 'y',   'к' => 'k',
    				'л' => 'l',   'м' => 'm',   'н' => 'n',
    				'о' => 'o',   'п' => 'p',   'р' => 'r',
    				'с' => 's',   'т' => 't',   'у' => 'u',
    				'ф' => 'f',   'х' => 'h',   'ц' => 'c',
    				'ч' => 'ch',  'ш' => 'sh',  'щ' => 'sch',
    				'ь' => '',    'ы' => 'y',   'ъ' => '',
    				'э' => 'e',   'ю' => 'yu',  'я' => 'ya',
    
    				'А' => 'A',   'Б' => 'B',   'В' => 'V',
    				'Г' => 'G',   'Д' => 'D',   'Е' => 'E',
    				'Ё' => 'E',   'Ж' => 'Zh',  'З' => 'Z',
    				'И' => 'I',   'Й' => 'Y',   'К' => 'K',
    				'Л' => 'L',   'М' => 'M',   'Н' => 'N',
    				'О' => 'O',   'П' => 'P',   'Р' => 'R',
    				'С' => 'S',   'Т' => 'T',   'У' => 'U',
    				'Ф' => 'F',   'Х' => 'H',   'Ц' => 'C',
    				'Ч' => 'Ch',  'Ш' => 'Sh',  'Щ' => 'Sch',
    				'Ь' => '',    'Ы' => 'Y',   'Ъ' => '',
    				'Э' => 'E',   'Ю' => 'Yu',  'Я' => 'Ya',
    		);
    
    		$str = strtr($string, $converter);
    		$str = strtolower($str);
    		$str = preg_replace('! !u', '_', $str);
    		$str = preg_replace('~[^-a-z0-9_]+~u', '-', $str);
    		$str = trim($str, "-");
    		return $str;
    	}


    Если вам надо убрать только левые символы, то можете её поменять
    Ответ написан
    3 комментария
  • Как переделать массив в PHP чтобы ключем стало определенное значение из массива?

    $likes =
            [
    				0 => [
    						'idea_id' => '1',
    						'user_id' => '4',
    						'value' => '1',
    						'created' => '2016-11-16 12:53:11'
    				],
    				1 => [
    						'idea_id' => '1',
    						'user_id' => '7',
    						'value' => '1',
    						'created' => '2016-11-16 13:42:37'
    				],
    				2 => [
    						'idea_id' => '1',
    						'user_id' => '8',
    						'value' => '1',
    						'created' => '2016-11-21 14:18:51'
    				],
    				3 => [
    						'idea_id' => '1',
    						'user_id' => '10',
    						'value' => '1',
    						'created' => '2016-11-21 16:05:58'
    				],
    				4 => [
    						'idea_id' => '1',
    						'user_id' => '11',
    						'value' => '1',
    						'created' => '2016-11-21 16:07:55'
    				]
    		];
    
    $likes = array_column($likes, null, 'user_id');
    
    echo '<pre>';
    print_r($likes);
    echo '</pre>';
    Ответ написан
    1 комментарий
  • За что отвечает фрагмент кода?

    Как написал Александр, вопрос плохо сформулирован. Единственное, что можно сказать по обрывку кода, это то, что данный кусок кода получает значение настройки 'config_customer_price', а где именно хранится эта настройка мы угадать не сможем (хотя есть всего два варианта - в файле или в базе данных:) ).

    Как уже писали - загрузите проект в phpstorm, там есть возможность легко находить связи и искать по проекту нужные данные.
    Ответ написан
    Комментировать
  • Как отправить последовательные POST запросы?

    Попробуйте использовать стандартную библиотеку curl, там можно не закрывая соединение посылать разные POST запросы или, как подсказали выше, попробуйте https://github.com/guzzle/guzzle

    P.S. Когда пишите вопросы по парсингу лучше указывайте конкретный сайт, с которым проблемы, так легче оказать помощь.
    Ответ написан
    Комментировать
  • Какую CMS выбрать?

    Посмотрите статистику на сайтах поиска работы и фриланс биржах. И в ваш список, кроме Worpress / Joomla, я бы добавил ещё Drupal и Bitrix - тоже популярные.

    Для того, что бы было проще изучать остальные, то берут более сложные (на сколько я знаю, то так говорят о Drupal, по крайней мере я начинал с него)
    Ответ написан
    Комментировать
  • При парсинге через прокси отдает 404 страницу?

    Всё зависит от прокси и его типа, вот тут в видео рассказывается об этом моменте https://www.youtube.com/watch?v=EBfQa8NkJbA&list=P...
    Так же где-то тут уже были вопросы с подобной проблемой, один человек дал достаточно дельный совет: купить дешёвый ВПС и заказать много айпишников (как утверждал отвечавший - можно купить за копейки). Так же был вариант парсить через Tor.
    Ответ написан
    Комментировать
  • Проблема с прокси?

    Здравствуйте, тоже недавно сталкивался с проблемой, что через некоторые прокси не получается получить вообще ничего, даже если на сайте нет защиты. Проблема не только с бесплатными сервисами, но и с платными. Позже наткнулся на ту же проблему на тостере и ответы очень интересные Как правильно реализовать cURL с прокси?
    Ответ написан
    Комментировать
  • Slim 3 не принимает GET параметры?

    Понимаю, что вопрос задан уже давно, но может кому пригодится. Что бы получить массив $_GET, то это примерно так:

    //для адреса http://site.ru/send/sms?phone=+7000000000
    $app->get('/send/sms', function(Slim\Http\Request $request, Slim\Http\Response $response, $args){
            //$request->getQueryParams() - весь массив $_GET
    	echo $request->getQueryParam('phone');
    
    });
    Ответ написан
    Комментировать
  • Почему при парсинге возвращается неактуальная версия страницы?

    Нашёл у них страницу https://otvet.mail.ru/api/v2/questlist где в json хранятся и, что важно для вас, своевременно обновляются все вопросы.

    То есть достаточно этого кода:
    json_decode(file_get_contents('https://otvet.mail.ru/api/v2/questlist'), true)


    И получите в массиве последние 100 записей
    Ответ написан
    Комментировать
  • Как сделать перенос строки в сообщении которое отправляет бот?

    Возможно константа PHP_EOL поможет? Она как раз автоматом и подставляет нужный перенос строки в зависимости от того, в какой оси используется, решение более универсальное. Ну а вообще нужен хотя бы кусочек кода, где у вас проблема.
    Ответ написан
    1 комментарий
  • Проблема с роутером на php. Как исправить ссылки?

    Не очень давно задавался тем же вопросом и адекватный ответ нашёлся только один htmlbook.ru/html/base
    То есть, если пути на стили и остальное относительные, то в шаблоне прописать этот тег в head и вставить путь к папке со скриптом joxi.ru/brR8Ep7uQeYzX2 . Ну или генерировать на все файлы прямые ссылки, но с base проще.
    Ответ написан
    Комментировать
  • Каптча. Ручное распознавание с помощью пользователя?

    То есть вы хотите интегрировать на свой сайт проверку права на обслуживание с приведённого сайта? В самих тонкостях касаемо конкретного примера я не разбирался, так как такой задачи не было, но на том сервисе картинка, как и сама форма создаётся через JS, то есть просто взять и выдрать через php её не получится. В отдельных случаях, в похожих ситуациях, получается залезть внутрь JS файла, прочитать нужные данные и отправить необходимый запрос на сервер, но на сколько это реально в данном случае (хотя на первый взгляд кажется вполне возможным) и хватит ли у вас навыков - я не знаю.
    P.S. Не забывайте, что капча на каждую загрузку страницы будет разная, следовательно придётся ещё разбираться в этом вопросе.
    Ответ написан
    Комментировать
  • Парсить страницу после выполнения скриптов?

    Нашёл вот такое на примере с ценой
    <script type="text/javascript">document.write('<div class="b-post__price b-post__price_padleft_10 b-post__price_padbot_5 b-post__price_fontsize_15 b-post__price_bold b-post__price_float_right"> 150&nbsp;000&nbsp;р./месяц </div>');</script>


    Соответственно остальное добавляется точно так же. То есть надо парсить не html, а то, что находится в document.write. Так можно будет спарсить инфу там, где список проектов.

    Но я бы собрал все ссылки на проекты, а потом распарсил бы уже внутренние страницы самих проектов.
    Ответ написан
    3 комментария
  • Как обработать текст, поступающий в textarea?

    Самый адекватный вариант - использовать WYSIWYG редактор, например ckeditor. Он позволяет комфортно писать и редактировать текст с разметкой и вам не надо будет беспокоиться о том, что в вашем тексте есть какие-то теги.
    Ответ написан
    Комментировать