PHP.SU

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

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

> Найдено сообщений: 36
Gray314 Отправлено: 24 Мая, 2011 - 12:41:10 • Тема: Передача переменной по ссылке • Форум: Если скрипт не работает

Ответов: 38
Просмотров: 13966
EuGen пишет:
Цитата:
print_r($_POST);

Надо так:


серовно он не передает переменную, а массивы GET и POST пусты..
Gray314 Отправлено: 24 Мая, 2011 - 12:05:30 • Тема: Передача переменной по ссылке • Форум: Если скрипт не работает

Ответов: 38
Просмотров: 13966
Привет, помогите передать значение переменной по ссылке.
PHP:
скопировать код в буфер обмена
  1. if ($array_user['login'] == $lg)
  2.     {
  3.          if ($array_user['password'] == $pwd)
  4.          {
  5.              $fl = true;
  6.              header("Location: index2.php?log=\"bla-bla\"");
  7.          }
  8.          else
  9.          {
  10.              echo "Неверный пароль";
  11.              return;
  12.          }
  13.     }
  14.  


CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. echo "Спасиобо ".$log." что вошли!";
  4. print_r($_POST);
  5. ?>
  6.  


В идеале необходимо передать значение переменной $lg, но он вообще ниче не хочет передавать(
Gray314 Отправлено: 27 Апреля, 2011 - 18:40:23 • Тема: Удаление элементов из массива • Форум: Хранение данных, их вывод и обработка

Ответов: 9
Просмотров: 10515
garvey пишет:
Gray314, а мое решение, которое намного меньше, вас не устраивает? Зачем изобретать велосипед?

Устраивает спасибо, чесн говоря не заметил сразу твой ответ, подправил свой код, Спасибо)
теперь мучиюсь с регуляркой)
Gray314 Отправлено: 27 Апреля, 2011 - 15:57:18 • Тема: Удаление элементов из массива • Форум: Хранение данных, их вывод и обработка

Ответов: 9
Просмотров: 10515
Саныч пишет:
Gray314 пишет:
может есть какая функция в php, которая "упорядочит" индексы?)

помойму такой функции нет, но ведь можно самому написать)
PHP:
скопировать код в буфер обмена
  1. function resort($arr)
  2. {
  3.    $new = array();
  4.    foreach($arr as $v) $new[] = $v;
  5.    return $new;
  6. }
  7. $array = resort($array);


Спасибо!
Gray314 Отправлено: 27 Апреля, 2011 - 14:43:32 • Тема: Удаление элементов из массива • Форум: Хранение данных, их вывод и обработка

Ответов: 9
Просмотров: 10515
Спасибо, я пробывал Unset(), но он при удалении выдаст следующее:
Array
PHP:
скопировать код в буфер обмена
  1. (
  2.     [1] => второе 34
  3.     [4] => второе 37
  4.     [6] => второе 74
  5.     [7] => 24, 234, 234, 66, 7 Конец слагаемого
  6.     [8] => 6: р1 = аав4- sin(в4а)-ы3ц+у3у-й5ц-ыв
  7.     [9] => ж3 = р5+п3
  8.     [10] => 765: ф = уыу5*cos(пв6)/234
  9.     [11] => х1 = -ла2- sin(а009)
  10.     [12] => 7: ф = уыу5*cos(пв6)/234
  11. )

а хотелось бы:
PHP:
скопировать код в буфер обмена
  1. (
  2.     [0] => второе 34
  3.     [1] => второе 37
  4.     [2] => второе 74
  5.     [3] => 24, 234, 234, 66, 7 Конец слагаемого
  6.     [4] => 6: р1 = аав4- sin(в4а)-ы3ц+у3у-й5ц-ыв
  7.     [5] => ж3 = р5+п3
  8.     [6] => 765: ф = уыу5*cos(пв6)/234
  9.     [7] => х1 = -ла2- sin(а009)
  10.     [8] => 7: ф = уыу5*cos(пв6)/234
  11. )

может есть какая функция в php, которая "упорядочит" индексы?)
Gray314 Отправлено: 27 Апреля, 2011 - 14:06:23 • Тема: Удаление элементов из массива • Форум: Хранение данных, их вывод и обработка

Ответов: 9
Просмотров: 10515
Ребят помогите динамически удали элементы с массива:
вот например исходный массив:
PHP:
скопировать код в буфер обмена
  1. (
  2.     [0] => второе 34
  3.     [1] => первое а43в, а5, ва3, ы22
  4.     [2] => первое р1, бвв, ые5
  5.     [3] => второе 37
  6.     [4] => первое щщщ, б4б, юа5
  7.     [5] => второе 74
  8.     [6] => 24, 234, 234, 66, 7 Конец слагаемого
  9.     [7] => 6: р1 = аав4- sin(в4а)-ы3ц+у3у-й5ц-ыв
  10.     [8] => ж3 = р5+п3
  11.     [9] => 765: ф = уыу5*cos(пв6)/234
  12.     [10] => х1 = -ла2- sin(а009)
  13.     [11] => 7: ф = уыу5*cos(пв6)/234
  14. )

есть массив с позициями элементов для удаления:
PHP:
скопировать код в буфер обмена
  1. (
  2.     [0] => 1
  3.     [1] => 2
  4.     [2] => 4
  5. )


вот код который я использую для удаления:
PHP:
скопировать код в буфер обмена
  1. for ($k=0;$k<count($array_pos);$k++)
  2.     {
  3.         $pos = $array_pos[$k];      
  4.         array_splice($array_input,$pos,1);
  5.     }

получается при каждой итерации исходный массив уменьшается на 1 элемент, и последующая итерация удаляет не тот элемент, можно это как нибудь реализовать, чтобы все верно отрабатывало?
Gray314 Отправлено: 25 Апреля, 2011 - 19:57:00 • Тема: Разбить строку • Форум: Регулярные выражения

Ответов: 2
Просмотров: 194
Ребят помогите разбить сроку на элементы, т.е. каждую переменную или знак операции занести в массив, по учебе надо)
строка вида: 6: р1 = аав4-443-ы5 * sin(ап5в)+ 34 & ва3п / в232в -33 + ф34 | фв+ cos(23)

Пробелы могут быть, могут не быть между операторами и переменными.
Операторы: -, +, *, /, ! - "отрицание", & - "и", | - "или".
Переменная набор букв и цифр: кириллица и 8ая система счи-я.

preg_match_all("/[а-яА-Я0-7]+/", $tStr, $array_tmp);, так отрабатывает, а когда добавил знаки действий:
preg_match_all("/[а-яА-Я0-7]+|[!*+-&\| \/] /", $tStr, $array_tmp); то не отрабатывает и вылетает "варнинг"..(

Спасибо =)
Gray314 Отправлено: 23 Апреля, 2011 - 15:38:51 • Тема: Рекурсивная функция • Форум: Программирование на PHP

Ответов: 5
Просмотров: 280
Спасибо! Регулярки хорошая вещь, но я постоянно забываю о них(
Gray314 Отправлено: 23 Апреля, 2011 - 12:37:26 • Тема: Рекурсивная функция • Форум: Программирование на PHP

Ответов: 5
Просмотров: 280
Ребят помогите реализовать рекурсию в данной функции, функция удаляет пробелы в строке (заменяет "__" на "_", стандартные заменяют тока в начале и в конце):
PHP:
скопировать код в буфер обмена
  1. function trimSpace ($strN)
  2. {
  3.       $strN = str_replace("  ", " ", $strN);
  4.       //trimSpace ($str);
  5.       //return trimSpace ($strN);
  6.       return $strN;
  7. }

просто без рекурсии она заменяет, но например из 6 остается 3, и только при повторном вызове 2, и следующем 1... а хотелось бы сразу))
Спасибо!
Gray314 Отправлено: 18 Апреля, 2011 - 14:47:26 • Тема: Проблема со строками • Форум: Программирование на PHP

Ответов: 4
Просмотров: 274
Я так и думал, что чет с кодировкой, но как мне сделать чтобы "адресация" так сказать было нормальная символ шел за символ, а не за два... прост мне придется дальше не тока копировать, но другие операции производить...запутаюсь..

Все равно спасибо. Радость
Gray314 Отправлено: 18 Апреля, 2011 - 14:13:28 • Тема: Проблема со строками • Форум: Программирование на PHP

Ответов: 4
Просмотров: 274
Привет, помогите разобраться...
имеется страница с исходными данными (некоторым текстом),
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <html>
  3. <head>
  4.     <meta http-equiv="Content-Type" content="text/html; charset=utf8">
  5.     <title> local server </title>
  6. </head>
  7. <body>
  8.     <form name="form"  action="process.php" method="POST">
  9.         Введите исходную строку: <BR>
  10.         <textarea name="edit" rows="20" cols="50">
  11. начало
  12. первое а43в, а5, ва3, ы22
  13. первое р1, бвв, ы00,
  14. второе 34, 34, 4, 33
  15. первое щщщ, б4б, юа5
  16. второе 4, 2, 2,
  17. 24, 234, 234, 66, 7
  18. 6: р1 = аав4-443
  19. ж3 = р5+п3
  20. х1 = -ла2-а009
  21. 77: ф = уыу5*пв6
  22. конец</textarea> <BR>
  23.         <input type="submit" value="Обработать" name="ok" />
  24.     </form>
  25. </body>
  26. </html>

и скрипт обработки данной страницы
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. header("Content-type: text/html;charset=utf8");
  4. $input = $_POST['edit'];
  5. $myError="";
  6. $flagError=0;
  7. $array_input[]='';
  8. echo "===================================";
  9. echo "<BR>";
  10. $in = str_replace(chr(10), "<BR>", $input);
  11. print $in;
  12. echo "<BR>";
  13. echo "===================================";
  14. echo "<BR>";
  15. //////////////////////////////////////////////
  16. keyWord($input);
  17.  
  18.  
  19. ////////==============FUNC============//////////////
  20. function keyWord ($str)
  21. {
  22.     GLOBAL $array_input;
  23.     GLOBAL $myError;
  24.     $myError='';
  25.     GLOBAL $flagError;
  26.     $array_input=split(chr(10), $str);
  27.     echo "<BR>";
  28.     $tmp = substr($array_input[0], 0, 12); //<=========================
  29.     echo "длина ====".strlen($array_input[0])."<br>";
  30.     echo "_____".$array_input[0]."____"."<BR>";
  31.     echo "_____".$tmp."____"."<BR>";
  32.     echo "<pre>";
  33.     print_r($array_input);
  34.     echo "</pre>";
  35. }
  36.  
  37. ?>
  38.  

Проблема в следующем, при попытке копирования части строки с использованием substr, мне надо указывать двойное количество символов которое я хочу скопировать т.е. например я хочу скопировать слово "начало" то мне надо указать 12, а не 6... почему так? не когда раньше не сталкивался с такой проблемой.
причем если указываю 11 то получается:
_____начало ____
_____начал�____
если 10, то:
_____начало ____
_____начал____
9ть:
_____начало ____
_____нача�____
и тд...
если бы мне необходимо просто скопировать это тока в данном случае, то я бы указал 12 и не парился, но мне придется дальше работать с текстом, а такое нарушение "адресности" не позволительно(((
з.ы. это домашняя работа по одному из предметов в ВУЗе, не буду вдаваться в подробности задания Радость
Gray314 Отправлено: 30 Марта, 2011 - 01:30:40 • Тема: Регулярное выражение • Форум: Регулярные выражения

Ответов: 9
Просмотров: 975
спасибо DlTA, всё заработало
$content = preg_replace('/(?<=href=\")({$tmp})/i',"${0}$linkName", $content);
(Добавление)
OrmaJever пишет:
Gray314 пишет:
данной переменной...

это не переменая! Такого синтаксиса не существует. Переменая - $linkName, а всё что перед это непонятно что...

извини немного не так выразился $linkName - да это моя переменная для замены, а
${0} - результат работы функции, содержится найденная строка целиком.., то что я буду заменять на $linkName.

preg_replace

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

preg_replace -- Выполняет поиск и замену по регулярному выражению
Описание

mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit] )


Выполняет поиск в строке subject совпадений с шаблоном pattern и заменяет их на replacement. В случае, если параметр limit указан, будет произведена замена limit вхождений шаблона; в случае, если limit опущен либо равняется -1, будут заменены все вхождения шаблона.

Replacement может содержать ссылки вида \\n либо (начиная с PHP 4.0.4) $n, причем последний вариант предпочтительней. Каждая такая ссылка, будет заменена на подстроку, соответствующую n'нной заключенной в круглые скобки подмаске. n может принимать значения от 0 до 99, причем ссылка \\0 (либо $0) соответствует вхождению всего шаблона. Подмаски нумеруются слева направо, начиная с единицы.


При использовании замены по шаблону с использованием ссылок на подмаски может возникнуть ситуация, когда непосредственно за маской следует цифра. В таком случае нотация вида \\n приводит к ошибке: ссылка на первую подмаску, за которой следует цифра 1, запишется как \\11, что будет интерпретировано как ссылка на одиннадцатую подмаску. Это недоразумение можно устранить, если воспользоваться конструкцией \${1}1, указывающей на изолированную ссылку на первую подмаску, и следующую за ней цифру 1.



з.ы. если не прав, исправьте... Хорошо
Gray314 Отправлено: 30 Марта, 2011 - 01:26:36 • Тема: Регулярное выражение • Форум: Регулярные выражения

Ответов: 9
Просмотров: 975
DlTA пишет:
Gray314 пишет:
...${0}$linkName...
а че это за хрень?

я делаю замену найденной строки на значение содержащиеся в данной переменной...
Gray314 Отправлено: 30 Марта, 2011 - 00:42:18 • Тема: Регулярное выражение • Форум: Регулярные выражения

Ответов: 9
Просмотров: 975
Ребят подскажите как правильно передать переменную в регулярное выражение:
$content = preg_replace('/(?<=href=\")('.$tmp.')/i',"${0}$linkName", $content,1);

в переменной информация с массива:
[0] => test_2.html
[1] => /test_3.html
[2] => test_4.html
[3] => http://google[dot]ru
[4] => test_4_4.html

или можно сразу передать массив, указав текущий элемент...

з.ы. пробывал и через переменную и ч/з массив в итоге ошибка:
Warning: preg_replace() [function.preg-replace]: Delimiter must not be alphanumeric or backslash in ...
Gray314 Отправлено: 29 Марта, 2011 - 12:27:56 • Тема: Регулярное выражение • Форум: Регулярные выражения

Ответов: 9
Просмотров: 975
movEAX пишет:
Зачем экранировать каждый символ 0_o?

ну мне надо было не только буквы и цифры, но и некоторые символы которые встречаются в ссылках..., другого варианта не нашел)))
з.ы. я тока начал использовать регулярки)

PHP:
скопировать код в буфер обмена
  1. preg_match_all('#(?<=href=")[a-z][^"]++#', $donor, $links);
  2. print_r($links);
  3. //  Результат:
  4. //    [0] => Array
  5. //        (
  6. //            [0] => test_2.html
  7. //            [1] => test_3.html
  8. //            [2] => test_4.html
  9. //            [3] => http://google.ru
  10. //            [4] => test_4_4.html
  11. //        )


спасибо ссылки с цифрами пропускает.., тока то че я задумал чето не получается(( вообщем буду дальше разбираться)

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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB