Добрый день, есть такой вопрос, нужно написать простенький скрипт, который обрезал бы каждую строку до нужного мне количества символов, в данном случае до 18 символов Как можно это сделать средствами php? Примерно 1000 строк обрезать нужно до 18 символов каждую спасибо за помощь
c0rp$e Я не телепат, что бы написать регулярное выражение, которое будет парсить то, что тебе нужно. preg_match_all($patter,$homepage, $out); замени на preg_match_all($pattern,$homepage, $out);
Вообщем хз куда запостить....возникла трабла...... Скрипт спокойно работает на денвере(пыха 5) но не работает на серере(пыха 5.3) просьба глянуть,и сказать,какие хрени этого кода удалены(заменены) в пыхе 5.3 PHP: $num1 = rand(100,2222); $num=(string)$num1; $im = @ImageCreate (70,20); header ('Content-type: image/png'); $background_color = ImageColorAllocate ($im, 0xfc, 0xfc, 0xff); $text_color = ImageColorAllocate ($im, 10, 10, 10); $color1 = ImageColorAllocate ($im, 120, 15, 20); for ($i=1; $i<6; $i++) { $idq = rand(1, 7); imageellipse($im, 0, 0, 30*$idq, 15*$idq, $text_color); } for ($i=1; $i<100; $i++) { $x = rand(1, 90); $y = rand(1, 19); imageline($im, $x, $y, $x, $y, $color1); } for($i=0;$i<strlen($num);$i++) { ImageString($im, 5, 8+13*$i+rand(-2,2), 3+rand(-2,2),$num[$i], $text_color); } ImagePng ($im); ImageDestroy($im); if(isset($_REQUEST[session_name()])){ session_start(); } if($_REQUEST[session_name()]){ $_SESSION['captcha_keystring'] = $num1; }
дело не в php, а думаю отсутствует GD либа на сервере (phpinfo в помощь) З.Ы. юзай mt_rand, а не rand З.Ы.Ы. PHP: for($i=0;$i<strlen($num);$i++) в каждом выполнении цикла будет выполнятся ф-ция strlen, так что присвой лучше длину в еще 1 переменную и её и юзай в цикле
Есть файл const.php PHP: <?php $msg['hello'] = 'Hello, '. $name; ?> И есть файл, в котором этот скрипт инклудится в начале, но $name задается после инклуда. Как правильно сделать такое? Всякие быдлокоды типа инклуда после декларирования переменной и вывода текста в самом индексе мне не подходят.
PHP: function hello() { global $name; $msg['hello'] = 'Hello, '.$name; } инклудь когда угодно, после объявления переменной вызываешь ф-цию, эт первое что пришло в голову =\
Этот способ работает, но у меня еще по-другому и global не подойдет Есть три файла. 1. (index.php) С этого вызывается функция. 2. (functions.php) Здесь сама функция. 3. (constants.php) А здесь текст сообщения. Из файла 1 вызывается функция в файле 2, переменная с текстом которой есть в файле 3. Тоесть так: index.php PHP: include ('constants.php'); include ('functions.php'); $name = $_POST['name']; display_message($m['reg_success']); functions.php PHP: function display_message($message) { echo '<center><div class="msg"><br>' . $message . '<br><br></div></center><br />'; } constants.php PHP: $m['reg_success'] = $name . ', ваша регистрация завершена!'; Как поступать? Как сделать структуру?
Ну какбе ты в файле constants.php уже назначил значение массиву с пустой переменной $name и дальше ему побоку, что ты назначаешь $name. Если интересует именно такая реализация, то переменные всегда назначай в самом начале файла. index.php: PHP: $name = $_POST['name']; include ('constants.php'); include ('functions.php'); display_message($m['reg_success']);
Это будет нерационально с точки зрения грамматики кода. Я пишу профессиональную систему на PHP, для себя, целью которой есть изучение именно этого (грамматики). Столкнулся с такой проблемой.
mailbrush Code: $messages = array ( 'reg_success' => '%s, ваша регистрация завершена!', 'hello' => 'Hello, %s' ); К грамматике это не относится.
не ну на самом деле никак иначе, ты присваиваешь значение $m['reg_success'] (которому нужен $name) а потом уже объявляешь $name, по этому только 2 способа 1) использовать global относительно $name в ф-ции display_message (действительно не профессионально) 2) объявить в правильном порядке, с начало $name, а потом $m['reg_success'] (что я бы и сделал)
Так, пускай будет второй вариант. Но у меня еще не так PHP: ... if(условие) { $name = 'Вася'; include('constants.php'); display_message($m['reg_success']); } ... Потом в этом коде еще несколько раз выводится display_message, где текст указывается не везде. Разве нельзя никак иначе сделать, ибо 5-10 инклудов того же файла - это вообще ни в какие рамки не влезает.
сделай класс, в который инклудится constants.php, и получается каждый раз когда тебе надо display_message просто будешь вызывать его из класса, в зависимости от условия меняя или не меняя $name. Получается у тебя в наличии весь constants.php и удобно вызывать display_messages, меняя $name когда тебе надо
В общем есть форма: <select> <option>1</option> <option>3</option> <option>4</option> <option>5</option> <option>6</option> <option>7</option> </select> и так до 30-го числа Потом вторая форма <select> <option>Январь</option> <option>Февраль</option> </select> и так далее Как мне с помощью php, к примеру - вывести 21 Января на екран.
В бд (mySQL) есть 2 уникальных поля u1 и u2 И при запросе в бд возникает ошибка что поле u1 или u2 уже имеет такое значение Как причитать что данное значение уже есть, и в каком поле оно повторяется? как получить текущую дату для отправление в бд (тип поля в бд: datetime)? // date("Y-m-d H:i:s") помогло
PHP: <select> <option>1</option> <option>3</option> <option>4</option> <option selected>5</option> <option>6</option> <option>7</option> </select> <select> <option selected>Январь</option> <option>Февраль</option> </select> Не?
Может ему надо : PHP: <select name=day> <option>1</option> <option>3</option> <option>4</option> <option selected>5</option> <option>6</option> <option>7</option> </select> <select name=month> <option selected>Январь</option> <option>Февраль</option> </select> <? echo "$_POST[day] $_POST[month]"; ?>