HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #5371  
Старый 11.09.2008, 12:01
Zircool
Участник форума
Регистрация: 01.03.2006
Сообщений: 169
Провел на форуме:
519496

Репутация: 78
Отправить сообщение для Zircool с помощью ICQ
По умолчанию

Не могу понять что за ошибка такая, ищу строку с помощью регулярки в массиве, но выводится ошибка

Цитата:
Warning: preg_match() expects parameter 2 to be string, array given in Z:\home\localhost\www\cms\operate_tags.php on line 97
код такой
PHP код:
$filename=trim($_POST['istagdel']);
$filetags=file('tags.php');
 
preg_match('#<a href=\"(.*?)\">'.$filename.'</a>,#is'$filetags,$res);
 echo 
$res[1]; 
 
Ответить с цитированием

  #5372  
Старый 11.09.2008, 12:16
159932
Постоянный
Регистрация: 28.09.2007
Сообщений: 820
Провел на форуме:
6722038

Репутация: 1385


По умолчанию

$filetags должен быть стрингом, а у тебя массив ..
там же написано ! англиским по белому !
==================
если я правильно понял что тебе нужно, то вместо ф-ии file используй file_get_contents

Последний раз редактировалось 159932; 11.09.2008 в 12:20..
 
Ответить с цитированием

  #5373  
Старый 11.09.2008, 12:59
inlanger
Познавший АНТИЧАТ
Регистрация: 07.01.2007
Сообщений: 1,263
Провел на форуме:
3326855

Репутация: 702


По умолчанию

Zircool, это значит, функция preg_match() не может понять, какого хрена переменная $filetags - не текст.
 
Ответить с цитированием

  #5374  
Старый 11.09.2008, 13:11
NuR
Участник форума
Регистрация: 11.12.2005
Сообщений: 160
Провел на форуме:
745130

Репутация: 159
Отправить сообщение для NuR с помощью ICQ
По умолчанию

у 159932 яснее написанно
 
Ответить с цитированием

  #5375  
Старый 11.09.2008, 13:18
Red_Red1
Участник форума
Регистрация: 12.01.2007
Сообщений: 262
Провел на форуме:
4608122

Репутация: 874
Отправить сообщение для Red_Red1 с помощью ICQ
По умолчанию

Можно использовать функцию preg_grep() она будет работать с массивом и вернет массив.

Вот пример
PHP код:
<?
$file_array 
=  file ("fil.txt"); //читаю весь файл в массив
$fl_array preg_grep("/^(\d+)\b/"$file_array);//Ищем только строки из цыфр
print_r ($fl_array);
?>
файл fil.txt
Код:
asdfasdf
0000asdfasdf
11111111
adfasd
2222222
fshdfhdf
afga3333sgdfg
444444
asdfasd55555
6666
Результат работы
Array ( [2] => 11111111 [4] => 2222222 [7] => 444444 [9] => 6666 )

Последний раз редактировалось Red_Red1; 11.09.2008 в 13:38..
 
Ответить с цитированием

  #5376  
Старый 11.09.2008, 13:31
Zircool
Участник форума
Регистрация: 01.03.2006
Сообщений: 169
Провел на форуме:
519496

Репутация: 78
Отправить сообщение для Zircool с помощью ICQ
По умолчанию

Можно использовать и preg_grep() я написал несного по другому т.к. лублю preg_match
А как выцыпить из ссылки вида

Цитата:
<a href="tag_nastr_content.php">Добавление контента</a>,
её url.

PHP код:

    $filename
=trim($_POST['istagdel']);
    
$filetags=file('tags.php');
    
settype($filetags,'string');
    
preg_match('/\<a href=\"(.*?)\"\>'.$filename.'\<\/a\>,/is',$filetags,$res);
    echo 
$res[1]; 
этот код не работает.. регулярка неправильная ?
 
Ответить с цитированием

  #5377  
Старый 11.09.2008, 13:41
Red_Red1
Участник форума
Регистрация: 12.01.2007
Сообщений: 262
Провел на форуме:
4608122

Репутация: 874
Отправить сообщение для Red_Red1 с помощью ICQ
По умолчанию

Как ты массив в строку переводишь О.о?
допиши после
settype($filetags,'string');
строку
echo $filetags;
Что видишь?
 
Ответить с цитированием

  #5378  
Старый 11.09.2008, 13:43
159932
Постоянный
Регистрация: 28.09.2007
Сообщений: 820
Провел на форуме:
6722038

Репутация: 1385


По умолчанию

PHP код:
preg_match('#<a href="(.+)">'.$filename.'<\/a>#',$filetags,$res);
$result $res[0]; 
и сделай вместо file , file_get_contents ..
 
Ответить с цитированием

  #5379  
Старый 11.09.2008, 14:00
NuR
Участник форума
Регистрация: 11.12.2005
Сообщений: 160
Провел на форуме:
745130

Репутация: 159
Отправить сообщение для NuR с помощью ICQ
По умолчанию

может тут уместнее foreach юзать?
 
Ответить с цитированием

  #5380  
Старый 11.09.2008, 16:00
Zircool
Участник форума
Регистрация: 01.03.2006
Сообщений: 169
Провел на форуме:
519496

Репутация: 78
Отправить сообщение для Zircool с помощью ICQ
По умолчанию

Сделал используя preg_match и файл открывал file_get_contents.. Только Вот сталкнулся вот с такой проблей. Имя ссылки может быть и с симвлами (,),{,}, но в таком случае проблема с регуляркой preg_match, Т.к. определяет эти символы как спец...

PHP код:
 preg_match('#<a href="(.+)">'.$filename.'<\/a>,#'file_get_contents('tags.php'),$res); 

Как можно обойти эту ошибку?
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[c/c++] Новичкам: задаем вопросы _Great_ С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 5421 21.04.2026 07:37
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости. Обсуждения. 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Уязвимости CMS / форумов 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ