PHP: if(strstr(file_get_contents('file.txt'), $_POST['phone']))){ echo 'Телефон есть'; } P.S $_POST[] - глобальный, ассоциативный массив =\
данные, которые вводятся в форму. если они будут повторяться, надо сделать чтобы не записывались повторно в test.php
У меня вопрос... ответьте пожалуйста. Люди, которые профессионально занимаются разработкой скриптов на php называются пиэчписты?
я думаю просто php-программистами. Ведь тех, кто на Дельфи кодит не называют же дельфистами))) хотя хз
Ну не знаю если это можно сравнивать... Ведь людей кто ездит на кране - называют Крановщики. А тех, кто ездит на комбайнах, уже никак не назовешь...
Кто знает, что означают эти ошибки: Warning: mysql_query(): Unable to save result set in... Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in... ???
Есть файл vhosts.conf(~ 3,5 Mb). Пример одной записи из него: Code: <VirtualHost *> <Directory /home/sites/x/xxx.ru> Options +Includes # -FrontPage- IndexIgnore .htaccess */.??* *~ *# */HEADER* */README* */_vti* <Limit GET POST> order deny,allow deny from all allow from all </Limit> <Limit PUT DELETE> order deny,allow deny from all </Limit> AuthName xxx.ru AuthUserFile /home/sites/x/xxx.ru/_vti_pvt/service.pwd AuthGroupFile /home/sites/x/xxx.ru/_vti_pvt/service.grp </Directory> ServerAdmin [email protected] DocumentRoot /home/sites/x/xxx.ru/ ServerName xxx.ru ServerAlias www.xxx.ru ScriptAlias /cgi-bin/ /home/sites/x/xxx.ru/cgi-bin/ CustomLog /usr/local/apache/logs/combined/xxx.ru.access_log combined BandWidthModule "On" BandWidthPulse 1000000 MaxConnection 0 <Directory "/home/sites/x/xxx.ru"> # 1 mbps channel BandWidth all 131072 </Directory> </VirtualHost> Мне нужно отпарсить его так, чтобы в другом файле были записи AuthName, AuthUserFile в виде xxx.ru:/home/sites/x/xxx.ru/_vti_pvt/service.pwd В регулярках я - полный ноль(в php тоже почти). Пропарсил много тем, но всё что пробывал - не работает... Последнее, на чем встал - PHP: <?php error_reporting(E_ALL); set_time_limit(0); $fr=fopen("t.txt","r"); $fp=fopen('file.txt', 'a+'); while (!feof ($fr)) { $buffer = fgets($fr,255); preg_match("#AuthName (.*)#", $buffer, $r); preg_match("#AuthUserFile (.*)#", $buffer, $r1); fwrite($fp, $r[1].":".$r1[1]."\r\n"); } echo "Все сделано"; fclose($fr); fclose($fp); ?> Но выводит в файл в виде: Code: : : : : : : : : : : : : : : : : : xxx.ru : :/home/sites/x/xxx.ru/_vti_pvt/service.pwd : : : : : : : : : Еще ошибка: В чём трабла? P.S. Про плюсы не забуду...
Вторая ошибка возникает изза первой, а первая значит что запрос не может сохранить результат. P.S учите английский
Saint-Sky, во-первых, ты читаешь из файла не строки, а определеное число байт, и в переменную может попасть кусок текста например AuthUs, а при следующем чтении, оставшееся. Во-вторых, при каждой итерации цикла For будет записываться в выходной файл: <Пустая строка>:<пустая строка> Мой совет - учи регулярки, в жизни пригодится. Для тренировки можешь использовать например этот сайт:http://www.pcre.ru/eval/ А так, вот пример для твоей задачи PHP: <? $f=file_get_contents('t.txt'); $out=fopen("out2.txt",'a+'); $j=1; $i=preg_match_all("#(<VirtualHost .*?>)([\s\S]*?)(AuthName )(\S*)([\s]*?)(AuthUserFile )(\S*)([\s\S]*?)(<\/VirtualHost>)\s*#i",$f,$match, PREG_PATTERN_ORDER); for ($j=0;$j<$i;$j++) { fwrite($out,$match[4][$j].":".$match[7][$j]."\r\n"); } fclose($out); ?>
у меня тоже вопрос, чё это за ошибка и как её исправить Fatal error: Call to undefined function echo_message()
Такая проблема,открываю файл как массив , в файле порядка 20 строк, нахожу нужную строку и заменяюю её на null т.е. удаляю, затем очищаю документ и перезаписываю в него уже обработанный массив(с удаленной строкой), но в тексте вновь записанного файла пустая строка, а должна быть не пустая строка а следующий файл на её месте.. вот код PHP: $delname=file('linklist.txt'); $delname=str_replace($_POST['unlinkfile'],null,$delname); $clear=fopen("linklist.txt", "w"); $delname=implode("",$delname); $taglist = fopen("linklist.txt", "a+"); fwrite($taglist, $delname); fclose($taglist); Файл linklist.txt был таким а после обработки становится таким, к примеру удалим 3 а должно быть таким Как это исправить?
Zircool проще так: PHP: $file = file('list'); unset($file(array_search($POST['delet'], $file))); $fp = fopen('list', "w"); foreach($file as $str) fwrite($fp, $str."\r\n"); fclose($fp);
D Mak Может быть и проще но у меня ешё есть выражение с регуляркой... PHP: $deltag=file('tags.php'); $deltag=preg_replace('#<a href=\"'.$_POST['unlinkfile'].'\">(.*?)</a>,#is',null,$deltag); $deltag=implode("",$deltag); $clear_tags=fopen("tags.php", "w"); $taglist2 = fopen("tags.php", "a+"); fwrite($taglist2, $deltag); fclose($taglist2); Как в таком случае поступить?
тогда лучше ваще читать не file-ом а get_file_contents-ом и preg_replace("#</a>\r\n#si", null, $str); ЗЫ а нафига ты два раза в конце файл открываешь?