Хех, а ведь в регулярках есть дигит \d PHP: <? $text="7902bdfzss666"; preg_match('/([\d]+)/',$text,$out); echo $out[0] ?>
Если формат записи строго xxxYYY где xxx - цифры, то логичнее всего сделать так: PHP: <? $str = "1234qwer"; echo intval($str);
В ПХП нет указателей, но операция -> используется для получения доступа к методам и свойствам объекта.
Добрый вечер, ачатовцы! =) Подскажите пожалуйста или дайте скрипт(ы) чтобы при заливки картинки на сайт она обесцвечивалась(становилась чёрно-белая)
Было уже, именно в этой теме, юзай поиск: PHP: <pre> <? @set_time_limit(0); @ini_set("display_errors","1"); $s_file="1.jpg"; //Файл исходник $r_file="2.jpg"; //Куда сохранить результат wb($s_file,$r_file); //Запускаем функцию преобразования картинки /* Функция для преобразования цветной картинки в черно-белую */ Function wb($file1,$file2) { //Получаем данные о картинке (высота и ширина) list($width, $height) = getimagesize($file1); // Начинаем работу над исходником $source = imagecreatefromjpeg($file1); $bwimage= imagecreate($width, $height); //Создаем 256 цветную палитру for ($c=0;$c<256;$c++) { $palette[$c] = imagecolorallocate($bwimage,$c,$c,$c); } //Функция для преобразования rgb-пикселей в черно-белый цвет function yiq($r,$g,$b) { return (($r*0.299)+($g*0.587)+($b*0.114)); } //Считываем цветовые пиксели (один за другим) for ($y=0;$y<$height;$y++) { for ($x=0;$x<$width;$x++) { $rgb = imagecolorat($source,$x,$y); $r = ($rgb >> 16) & 0xFF; $g = ($rgb >> 8) & 0xFF; $b = $rgb & 0xFF; //А здесь мы преобразуем все цветные пиксели в черно-белые с помощью функции yiq $gs = yiq($r,$g,$b); imagesetpixel($bwimage,$x,$y,$palette[$gs]); } } // Сохраняем нашу получившуюся картинку imagejpeg($bwimage,$file2); ImageDestroy($bwimage); Echo "Done"; } ?> </pre>
Читайте про ООП в PHP. Символ -> используется для обращения к методу или полю обьекта. Т.е. Например у нас есть класс "test_class", внетри него есть переменная $param, и функция t_func(); Если мы хотим обратиться к ним внутри этого же класса то мы пишем: PHP: $this->param=4; $this->t_func(); А если обращаемся из основного документа к которому подключили этот класс, то: PHP: $test_object = new test_class; $test_object->param=3; $test_object->t_func(); И это рекомендую почитать: http://php.su/learnphp/phpoo/?classes
Старт. Да и вообще, тем кто решил заняться PHP: Первый скрипт на PHP я написал месяц назад.(давно хотел посмотреть почему этот язык так популярен, да ещё и свободное время появилось) Для первого эксперимента было выбрано написание простенького парсера. -Почему? 1) Разобраться со стандартными средствами языка. (Условия, циклы, работа со строками, работа с переменными, функции, процедуры) 2) Разобраться с регулярными выражениями. 3) Разобраться с тем как работать с MySql из под PHP.(парсер заносил результат в таблицу БД) 4) Разобраться с методами подключения к удалённым сайтам (cUrl, сокеты) Вооружившись книгой(купленной за год до этого ) и гуглом, я написал парсер для торрент движка tbdev за 2 дня. В ходе написания были выполнены все поставленные выше задачи. Рекомендую изначально привыкать к использованию функций. С чего я начал: 1. Достал скрипт который подключался к удалённой странице и заносил её содержимое в переменную. Подправил этот скрипт под себя, и занёс в функцию. 2. Сохранил 1 из страниц которую парсер должен читать на хард. Начал писать парсер(отдельный скрипт который читал ХТМЛ c харда) для этой страницы. После написания загнал его код в отдельную функцию. 3. Начал писать скрипт который заносил данные в MySql, и тоже запихнул его в отдельную функцию. В итоге у меня появились следующие функции: 1. Функция скачивания страцицы. (принимала ссылку и возвращала текст страницы в текстовой переменной) 2. Функция парсер. (принимала тексторую переменную с кодом страницы и возвращала массив с данными) 3. Функция сохранения данных. (принимала массив данных и заносила его в нужные колонки таблицы MySql) Удобство такого метода написания программ в том, что каждую функцию мы пишем и отлаживаем отдельно, после чего забываем о ней и переходим к следующей функции.(решаем каждую проблему отдельно) Далее я стал разбираться с ООП, и переписал скрипт в виде класса. В tbdev ссылки формируются так: PHP: http://tb.SITE.ru/details.php?id=1 //где ID-номер раздачи Скрипт для использования класса, стал выглядеть примерно так: PHP: <? include ("pars.inc"); //подключаем свой класс $par = new Pars(); //создаём обьект for ($i=500; $i<2500; $i++) { //указываем номера раздач для парсинга $par->Go($i); //Запускаем парсер } ?> Это конечно не лучшее применение ООП, но оно позволяет разобраться что к чему. В итоге, на приобретение начальных навыков чтения несложного кода ушло 3 дня.
Gray_Wolf заведи себе блог и пиши там, извини конечно за резкость но тут твоим статьям немного не место.
2AkyHa_MaTaTa, -=Static=- какаяж это статья? Этот так, бред сумашедшего. (сам незнаю почему но у меня врождённое отторжение ко всему что касается блогов, дневников, etc.)
Если посмотреть на звание топа то - " PHP: Новичкам: задаем вопросы", конечно никто не спорит, может он и дело пишет, но немного в не том топе, я также могу написать как я 2 года назад начел разберать с пхп, да и каждый может, но имхо в определеном топе.
PHP: <?php echo "<title>Special For DJ</title> <b>Сюда пишешь аськи в виде \"Много текста бла бла бла 123456;34%7№№ блаба\" а скрипт выберет только аськи!</b> <form method=post> <textarea name=uins rows=18 cols=60></textarea><br> <input type=submit value='Давай ка сотрем лишнее!'>"; if(isset($_POST['uins'])) { $uins=explode("\r\n",$_POST['uins']); echo "<br><br><br><b>Result:</b><br><textarea rows=18 cols=20>"; for($i=0;$i<=count($uins);$i++) { preg_match("/([0-9]{6,9}[;]{1}[\S]{1,8})/",$uins[$i],$out); echo $out[$i]."\r\n"; } echo "</textarea>"; } ?> Почему даный скрипт обрабатывает только первых два номера?
Есть мега логическая задача для браузерной игры : ) В игре есть карта (возьмём 200*200) Карта собой представляет таблицу в БД по кадой точке...тоесть x1 y1, x1 y2, x1 y3....x200 y200 Есть ячейка element которая отвечает за занятось клетки на игровом поле. Центр карты естественно точка x100 y100 Игрок при старте выбирает направление в котором он хочет появиться (северо-запад, юго-восток и т.д.) Допустим он выбрал Юго-Восток значит он распологается в квадрате x100-x200 y100-y200 (нижний-правый квадрат) Задача: расположить игроков начиная с центра карты...(чтоб пресутствовало между ними растояние от 1 до 4 клеток и чтоб они друг на друга не попали) Задавайте вопросы, по поводу что уточнить.
2mailbrush а вы почитайте описание функции preg_match И замените PHP: echo $out[$i]."\r\n"; на PHP: echo $out[1]."\r\n";