Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Работа с массивом

 PHP.SU

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


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

> Описание: Поиск нужного элемента
PascalSF
Отправлено: 13 Января, 2011 - 20:48:06
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Янв. 2011  


Помог: 0 раз(а)




Доброго времени суток. Я еще только начинаю осваивать программирование на php - помогите, пожалуйста, разобраться с кодом.

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $mas=explode("\n", $_GET['news']);
  3. $z = '[quote][center]';
  4. if (in_array($z,$mas)) {
  5. $a=array_search($z, $mas);
  6. echo $mas[$a]; }
  7. else echo "Элемент не найден!";
  8. ?>

В следствии выполнения этого кода все время выводит, что элемент не найден. Данные берутся из поля textarea в HTML-форме. Что я написал не так?
 
 Top
OrmaJever Модератор
Отправлено: 13 Января, 2011 - 21:00:17
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




1) для большого обьёма передаваемого текста лутше использовать метод POST
2) я не уверен но разделять нужно по \r\n


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
PascalSF
Отправлено: 13 Января, 2011 - 21:05:29
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Янв. 2011  


Помог: 0 раз(а)




OrmaJever пишет:
1) для большого обьёма передаваемого текста лутше использовать метод POST
2) я не уверен но разделять нужно по \r\n


Попробовал - все равно не "пашет".
 
 Top
Саныч Модератор
Отправлено: 13 Января, 2011 - 22:31:40
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


Помог: 62 раз(а)




OrmaJever пишет:
я не уверен но разделять нужно по \r\n

нет, по \n все нормально делится

Смотрите массив $mas, что в нем получается, возможно лишний пробел есть или еще что-то


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
PascalSF
Отправлено: 13 Января, 2011 - 22:43:29
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Янв. 2011  


Помог: 0 раз(а)




Саныч пишет:
нет, по \n все нормально делится

Смотрите массив $mas, что в нем получается, возможно лишний пробел есть или еще что-то


Смотрел, все нормально.
Добавил строку "яблоко" внутри текста в поле textarea, делаю по ней поиск - все работает.
Назрел еще один вопрос: суть в том, что из этого текста мне нужно вытащить все ссылки между тэгами:
CODE (htmlphp):
скопировать код в буфер обмена
  1. [quote][center]
  2. [url=вырезать ссылку][img]вырезать ссылку[/img][/url]
  3. [/center][/quote]

и записать их в файл! Для этого я пошел путем описанным выше.

(Отредактировано автором: 13 Января, 2011 - 22:49:08)

 
 Top
Toxa
Отправлено: 13 Января, 2011 - 22:48:58
Post Id



Посетитель


Покинул форум
Сообщений всего: 352
Дата рег-ции: Окт. 2008  


Помог: 8 раз(а)

[+]


что по поводу выбора ссылок из тегов - не слушай никого и начинай учить регулярные выражения. Это один из самых сложных разделов программирования, но без него никуда.


-----
Удобный сервис для хранения файлов
 
 Top
Саныч Модератор
Отправлено: 13 Января, 2011 - 22:49:35
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


Помог: 62 раз(а)




хм... Ха-ха А как вы это собирались сделать?) Исходя из вашего примера в $mas[$a] будет [quote][center], т.е. фактически $mas[$a] = $z

Ваши ссылки как-то оформлены, к примеру между тегами [url] и [/url] или они просто втупую вставляются в поле?


Цитата:
Это один из самых сложных разделов программирования
Что правда?) Радость Закатив глазки

(Отредактировано автором: 13 Января, 2011 - 22:51:40)



-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
PascalSF
Отправлено: 13 Января, 2011 - 23:00:29
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Янв. 2011  


Помог: 0 раз(а)




Саныч пишет:

Ваши ссылки как-то оформлены, к примеру между тегами [url] и [/url] или они просто втупую вставляются в поле?


CODE (html):
скопировать код в буфер обмена
  1. [url=http://php.su/index.php][img]http://php.su/hdrs.gif[/img][/url]


Вот из такой строки в поле textarea нужно вытащить ссылки и записать их в файл.
1 строка: url-ссылка
2 строка: img-ссылка

(Отредактировано автором: 13 Января, 2011 - 23:00:49)

 
 Top
OrmaJever Модератор
Отправлено: 13 Января, 2011 - 23:18:13
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Саныч пишет:
Что правда?)

я тоже так не думаю Подмигивание
Ну и что бы особо не осложнять то вот
PHP:
скопировать код в буфер обмена
  1. $str = '[url=http://php.su/index.php][img]http://php.su/hdrs.gif[/img][/url]';
  2. $str = preg_replace('#\[url=(.+?)\](.+?)\[/url\]#i', '<a href=$1>$2</a>', $str);
  3. $str = preg_replace('#\[img\](.+?)\[/img\]#i', '<img src=$1>', $str);
  4. echo $str;


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Саныч Модератор
Отправлено: 13 Января, 2011 - 23:21:20
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


Помог: 62 раз(а)




OrmaJever, человек просил немного другое

PHP:
скопировать код в буфер обмена
  1. $str = '[url=http://php.su/index.php][img]http://php.su/hdrs.gif[/img][/url]';
  2. preg_match('#\[url\=(.*)\]\[img\](.*)\[\/img\]\[/url\]#',$str,$res);
  3. if(count($res) > 0 && !file_exists('filename.txt'))
  4. {
  5.    $file = fopen('filename.txt','x');
  6.    fwrite($file,'url-'.$res[1]."\nimg-".$res[2]);
  7.    fclose($file);
  8. }

единственное, вместо переноса строки квадрат подставляется

(Отредактировано автором: 13 Января, 2011 - 23:22:38)



-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
PascalSF
Отправлено: 13 Января, 2011 - 23:47:13
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Янв. 2011  


Помог: 0 раз(а)




Прочитал все, что мне написали - во многом, как в "китайской грамоте"! Но написал следующее и сработало!
CODE (html):
скопировать код в буфер обмена
  1. <html><body>
  2. <form action="main.php" method="get" target="_blank">
  3. <textarea rows="19" cols="100" name="news"></textarea><br>
  4. <input type=submit value="Выполнить!">
  5. </form>
  6. </body></html>

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.       $str = '[url=http://php.su/index.php][img]http://php.su/hdrs.gif[/img][/url]';
  3.       $str = preg_replace('#\[url=(.+?)\](.+?)\[/url\]#i', '<a href=$1>$2</a>', $str);
  4.       $str = preg_replace('#\[img\](.+?)\[/img\]#i', '<img src=$1>', $str);
  5. $fp = fopen('main.txt','a');
  6. fputs($fp,$str);
  7. fclose($fp);
  8. ?>


Остается теперь "выцепить" строку ($str) из textarea (их там может быть сколько угодно!). Как это сделать?

(Отредактировано автором: 13 Января, 2011 - 23:48:25)

 
 Top
OrmaJever Модератор
Отправлено: 13 Января, 2011 - 23:51:05
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Саныч пишет:
OrmaJever, человек просил немного другое

Я потом немного дочитал но так и не смог понять зачем тогда bb теги если нужно просто взять сылки?


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
PascalSF
Отправлено: 13 Января, 2011 - 23:55:11
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Янв. 2011  


Помог: 0 раз(а)




OrmaJever пишет:
Саныч пишет:
OrmaJever, человек просил немного другое

Я потом немного дочитал но так и не смог понять зачем тогда bb теги если нужно просто взять сылки?

Вы прочитали мои мысли!!! HTML-код, записанный в текстовый файл - это даже намного лучше. а если код не нужен, то поправить php-код легко (просто убрать не нужные символы!?).
 
 Top
Саныч Модератор
Отправлено: 13 Января, 2011 - 23:55:55
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


Помог: 62 раз(а)




OrmaJever пишет:
зачем тогда bb теги

вот этот момент не одного меня интересует?)

PascalSF, можете один раз четко и ясно написать, что у вас есть и что вам нужно?!


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
PascalSF
Отправлено: 14 Января, 2011 - 00:10:41
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Янв. 2011  


Помог: 0 раз(а)




Саныч пишет:

PascalSF, можете один раз четко и ясно написать, что у вас есть и что вам нужно?!

На HTML-странице в поле textarea введен некий текст. В нем присутствует bbcode: url-ссылка с подписью img-ссылка. В файл нужно записать только те подобные ссылки, которые находятся в bbcode quote.
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB