Здравствуйте, всех с праздниками У меня подобная проблема. Есть такой код Код (Text): <?php $url = "http://fiorito.com.ua/353316_534.html"; function FetchUrl($url, $postvars, $timeout, $ref, $blank){ sleep($timeout); echo @date("r")." fetching $url \r\n"; $ch = curl_init(); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_TIMEOUT,30); curl_setopt($ch, CURLOPT_ENCODING, 'gzip'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_URL, trim($url)); curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE); $result = curl_exec($ch); if($blank == "1"){ $result = preg_replace("/\n/", "", $result); $result = preg_replace("/\r/", "", $result); } curl_close($ch); return $result; } $page = FetchUrl($url, NULL, NULL, NULL, NULL); preg_match_all("#\)1(.+?)cv#sim", $page, $out); $hj = 1; foreach($out[1] as $link){ exec("echo '".$link."' >> ".$hj.".txt"); $hj++; } ?> Парсит файл со статьями. Помещает их в отдельные файлы, с номером по порядку. Проблема: По факту из порядка выпадают некоторые файлы, не создаются. То есть вместо 776 файлов, получается 424 файла. Перепробовал всяческие вариации регулярных выражений, Такие и им подобные Код (Text): preg_match_all("/\)1([\n\s\r\t\f\w\d А-ЯЭЫЪЬЩЁІЇЄа-яэыъьщёіїє0-9A-Za-z\0032\»\«\-\—\–\{\}\]\[\!\@\#\\\№\$\%\^\&\*\(\)\_\=\+\/\?\,\.\;\:\'\`\~\|\"\<\>\ ]*?)\(cv/im", $page, $out); Результат один. Уже убил сутки на эксперименты с регулярными выражениями. Пытался найти что не будь по preg_match_all, может у кого были подобные проблемы, ничего найти не смог, наверное плохо искал или не там искал или не то искал. Люди добрые помогите, направьте на путь истинный. Что я упускаю? При желании можете провести следственный эксперимент. По указанному в парсере адресу, лежит файле в котором 2-ве статьи, парсер почему то создаёт только один файл.
Если бы я точно знал в чём проблема, вероятнее всего уже давно решил бы её. Суть в том что парсер частично пропускает статьи. И тут непонятно, толе проблема в счётчике, толе в кодировке, толе неправильном регулярном выражении, толе в обьёме памяти, этот список могу продолжать до без конечности. В общем всё что угодно может быть. Поскольку я не опытный, не знаю на чём акцентировать внимание, что конкретно искать, про что читать. Был бы благодарен, если мне хотя бы подсказали в каком направлении копать, я не прошу что бы мне написали работающий код.
Если вы думаете что я собираюсь парсить чужие ресурсы, это не так. Собираюсь парсить свои статьи, Написал для одного домена по текстилю 800 сотен статей. хочу их залить на домен, без использования базы MySQL. При написании статей использую свою разметку, добавляю её при помощи макросов в Word, которую так же использую, для регулярного выражения в данном парсере. У меня ещё два домена на которых по 200 и 760 статей. Практика показала что заполнять файлы в ручном режиме, занимает убийственно много времени. Вот решил ещё и данный момент автоматизировать, вот только пока что спотыкаюсь о камень нехватки знаний. Все статьи пишу сам, поскольку ценю чужой труд, ничьих чужих работ не присваиваю. Если хотите можете проверить, сайты: sketch. киев. юа, и mono-print. ком. юа. Ранее сам был руководителем предприятия по текстилю. Так сложилось что пришлось заниматься написанием сайтов и статей в данном направлении. Хотелось бы себе облегчить жизнь хоть в чём не будь. Поскольку даже на написание одного сайта тысячника уходит 4-6 месяцев. И это только статьи. Не говоря про перелинковки, форматирование, залив на домен, пропись мета тегов. Для своих доменов даже не покупаю ссылки, поскольку верю только в честное продвижение сайтов. Это одна из причин почему сразу пишу несколько сайтов одной тематики, что бы хоть за счёт чего не буть увеличить количество клиентов, ато с одного домена, даже на поддержание штанов заказов не хватает.
80 000 статей. Во всех 4 томах "Войны и Мира", Л.Н.Толстого, в сумме 460787 слов. 460 787 / 80 000 = 5.7598375 То есть, вы на одних названиях статей, в сумме, написали целую "Войну и Мир". Если в каждой статье хотя бы 100 слов... Сколько лет вы потратили на это? Вы уверены, что ничего не скрываете?
8- лет занимаюсь этим, параллельно немного занимался мебелью, создавал фото реалистичные интерьеры в 3DsMax, работал на дядю, ему написал тоже около сотни статей. Суммарно я написал около 2600 статей, в каждой в среднем 2500 символов. А результата пока что маловато, вот и решил создать несколько доменов что бы хоть на чем не будь было больше показов. В базу не заливал, поскольку в таком случае мне нужно было бы знать очень хорошо PHP, я с трудом освоил jQuery, для простых задач достаточно. Изучал основы программирования на PHP, но вот даже для простейшего парсера, мозгов не хватает. Посчитал сколько в среднем за восемь лет я написал символов 6 500 000. "Война и мир" отдыхают. Кстати сам недавно прикидывал в соотношении к книге "Война и мир", сам был в шоке. С таким же успехом можно было бы стать издателем книг или же работать в сфере журналов или новостей. Но кто же в таком случае писал бы сайты и статьи для такой узкой и мало популярной тематики, как рекламный текстиль? У меня брат тоже работал в данном направлении. У него было два сайта и вроде бы да же были заказы. Недавно он уехал в Москву в связи с ситуацией в Украине и падением рынка, что прямо пропорционально сказалось на количестве заказов. А я вот остался, тяну лямку тяжёлого труда и добычи заказов. На самом деле я больше приверженец ручного производственного труда. Просто так складывается жизнь, что пока не добудешь клиента, нету ручного труда, а время требует использования новых технологий, к тому же которые чуть ли не каждый день режут выдачу.
Огромное спасибо надеюсь разберусь. Похоже понял. Вот только придётся переделать макросы в Word, но всё равно решение хорошее. Ещё раз спасибо
Сдается мне, что-то не то тут. А можно привести пример статьи, без контента? Структуру. Что-то же вы парсить собрались. Значит там не просто голый текст. У вас на выходе HTML или как? Потому как PHP умеет из коробки в парсинг HTML. Без танцев.
Для одного домена я подготовил 400 статей, для которого и написал парсер. Они ещё не залиты на новый домен. Также ещё 100 статей для другого будущего домена. Для другого сайта чуть ранее, я написал 100 статей. И ещё ранее я написал 400 статей для ещё одного самого древнего домена. Ещё около пары сотен я суммарно написал для мебельной тематики, IP камеры видео наблюдения, автоматы распределения систем пожаротушения, и всяческих размышлений о бытие. 1200 статей русскоязычных, потом перевёл их все на Украинский. Вот уже 2400 статей, поскольку цифры занижены вот и выходит 2500-2600 статей. Я понимаю что в мои 28 лет. это немного попахивает маразмом, заниматься совсем не тем на кого учился, а именно Бухгалтер-экономист. И кроме того при отличном знании 3D моделирования и рендеринга, знания двухмерных векторных редакторов, растровых редакторов и опытом роботы на мебельном, печатном и текстильном производствах. и при этом по бывать директором предприятия. Но к сожалению так складывается жизнь. Постоянно приходится подстраиваться и решать текущие задачи. И весь этот жизненный гемор только ради того что бы хотя бы в ближайшем будущем начать зарабатывать достаточно для элементарно простой жизни. И быть может начать давать работу другим людям, поскольку в нашей стране с 2009 года фиг знает что творится. Добавлено спустя 24 минуты 33 секунды: статьи на данный момент парочку, русская и перевод на украинский лежат по ссылке Код (Text): http://fiorito.com.ua/353316_534.html Только две что бы не стянули всякие желающие по пользоваться чужим трудом, и не перепортили мой полу годовой труд. И это не самые лучшие мои работы по той же причине. В любом случае как я сказал не собираюсь парсить чужие сайты, поскольку сам много пишу и понимаю какого труда это стоит. По крайней мере, если бы у меня слили все статьи, скорее всего повесился бы, поскольку на данный момент, это труд всей моей жизни.
)1 Промо-одежда (r (cv )1 Промо-одяг (u (cv Жирным шрифтом. Это я, так понимаю, какие-то теги служебные? На вскидку, обозначение заголовков и конца статьи? Просто, если особо сложной структуры нет, и эти "теги", надо просто транслировать в соответствующие HTML-теги, вам хватит одного вызова str_replace().
Да это я придумал себе такую разметку, что бы к ней привязываться в макросах в Word. Значительно облегчает жизнь. Вообще в макросе предварительной версии формировался полностью код ля каждой статьи и каждого файла страницы. Но всё же они оставались в текстовом документе и нужно было копировать и вставлять каждую статью с кодом в отдельный файл.Для того что бы залить сто статей в ручном режиме убивалось двое суток. Если честно нервов просто не хватает. Угу спасибо, замена подойдёт. Тогда макрос не придётся переделывать. И можно будет вернуться к предыдущей версии. После этого подумаю как задавать названия для файлов, хотя бы русские и разбрасывать их в папки ru и ua, соответствующие языку статьи. И тогда моя жизнь будет значительно облегчена, смогу сосредоточиться только на написании статей.
По предложенному решению понял что это ООП. Похоже придётся освоить, вместе с исключениями. Не думал что мне кто не будь поможет, оказался неправ. В любом случае огромное спасибо за помощь.
Я имел в иду тот пример который предложил, denis01. Там есть оператор ->. Суть который если я правильно понял, обращение к классу, его свойствам и методам, и соответственно это ООП. Начал читать про ООП, пока туго идёт. Вроде бы и понятно, но много всего нового, пока в голове не утряслось.
Чтобы парсить HTML в dom, нужно иметь HTML. У вас же там какая-то собственная разметка. И да, чтобы использовать объекты в пхп, не надо знать ООП и городить классы. Они прекрасно работают в обычном процедурном коде.
Ну свою разметку я поменяю быстро, макросы рулят, или str_replace(). Вот насчёт классов спасибо, что подсказали. А то начал бы изобретать велосипед. Хотя почитать про ООП было интересно, очень познавательно. Столько всего новенького, сложные но оптимизированные конструкции, бомба.
Не всегда они такие уж оптимизированные. ООП в пхп вообще пока что вещь неоднозначная. Использовать нужно только тогда, когда оно действительно необходимо.