ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

11.09.2008, 12:01
|
|
Участник форума
Регистрация: 01.03.2006
Сообщений: 169
Провел на форуме: 519496
Репутация:
78
|
|
Не могу понять что за ошибка такая, ищу строку с помощью регулярки в массиве, но выводится ошибка
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];
|
|
|

11.09.2008, 12:16
|
|
Постоянный
Регистрация: 28.09.2007
Сообщений: 820
Провел на форуме: 6722038
Репутация:
1385
|
|
$filetags должен быть стрингом, а у тебя массив ..
там же написано ! англиским по белому !
==================
если я правильно понял что тебе нужно, то вместо ф-ии file используй file_get_contents
Последний раз редактировалось 159932; 11.09.2008 в 12:20..
|
|
|

11.09.2008, 12:59
|
|
Познавший АНТИЧАТ
Регистрация: 07.01.2007
Сообщений: 1,263
Провел на форуме: 3326855
Репутация:
702
|
|
Zircool, это значит, функция preg_match() не может понять, какого хрена переменная $filetags - не текст.
|
|
|

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

11.09.2008, 13:18
|
|
Участник форума
Регистрация: 12.01.2007
Сообщений: 262
Провел на форуме: 4608122
Репутация:
874
|
|
Можно использовать функцию 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..
|
|
|

11.09.2008, 13:31
|
|
Участник форума
Регистрация: 01.03.2006
Сообщений: 169
Провел на форуме: 519496
Репутация:
78
|
|
Можно использовать и 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];
этот код не работает.. регулярка неправильная ?
|
|
|

11.09.2008, 13:41
|
|
Участник форума
Регистрация: 12.01.2007
Сообщений: 262
Провел на форуме: 4608122
Репутация:
874
|
|
Как ты массив в строку переводишь О.о?
допиши после
settype($filetags,'string');
строку
echo $filetags;
Что видишь?
|
|
|

11.09.2008, 13:43
|
|
Постоянный
Регистрация: 28.09.2007
Сообщений: 820
Провел на форуме: 6722038
Репутация:
1385
|
|
PHP код:
preg_match('#<a href="(.+)">'.$filename.'<\/a>#',$filetags,$res);
$result = $res[0];
и сделай вместо file , file_get_contents ..
|
|
|

11.09.2008, 14:00
|
|
Участник форума
Регистрация: 11.12.2005
Сообщений: 160
Провел на форуме: 745130
Репутация:
159
|
|
может тут уместнее foreach юзать?
|
|
|

11.09.2008, 16:00
|
|
Участник форума
Регистрация: 01.03.2006
Сообщений: 169
Провел на форуме: 519496
Репутация:
78
|
|
Сделал используя preg_match и файл открывал file_get_contents.. Только Вот сталкнулся вот с такой проблей. Имя ссылки может быть и с симвлами (,),{,}, но в таком случае проблема с регуляркой preg_match, Т.к. определяет эти символы как спец...
PHP код:
preg_match('#<a href="(.+)">'.$filename.'<\/a>,#', file_get_contents('tags.php'),$res);
Как можно обойти эту ошибку?
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|