День добрый народ! Есть вопрос, всю голову сломал.. суть в следующем: Имеется HTML код: Code: <td align="right" valign="middle" width="10%" bgcolor="#F1F1EA"> Город: </td> <td align="left" valign="middle" width="90%" bgcolor="#F1F1EA"> Рязань </td> </tr> <tr> <td align="right" valign="middle" width="10%" bgcolor="#F1F1EA"> Адрес: </td> <td align="left" valign="middle" width="90%" bgcolor="#F1F1EA"> ул. Радищева, д. 61, оф. 25 </td> </tr><tr> <td align="right" valign="middle" width="10%" bgcolor="#F1F1EA"> Телефон: </td> <td align="left" valign="middle" width="90%" bgcolor="#F1F1EA"> 995547 </td> </tr><tr> <td align="right" valign="middle" width="10%" bgcolor="#F1F1EA"> Адрес электронной почты: </td> <td align="left" valign="middle" width="90%" bgcolor="#F1F1EA"> <a href="mailto:[email protected]">[email protected]</a> </a> </td> </tr><tr> <td align="right" valign="middle" width="10%" bgcolor="#F1F1EA"> URL / Website: </td> <td align="left" valign="middle" width="90%" bgcolor="#F1F1EA"> <a rel="nofollow" href="/out.php?ID=9999&p=" target="_blank">www.dialog-r.ru </a> </td> </tr><tr> <td align="right" valign="middle" width="10%" bgcolor="#F1F1EA"> Директор: </td> <td align="left" valign="middle" width="90%" bgcolor="#F1F1EA"> Чепурных Елена Сергеевна </td> </tr><tr> <td valign="top" align="right" valign="middle" width="10%" bgcolor="#F1F1EA"> Расширенная информация: </td> <td align="left" valign="middle" width="90%" bgcolor="#F1F1EA"> <br /> </td> </tr></td> </tr><tr> <td align="right" valign="middle" width="10%" bgcolor="#F1F1EA"> Время работы: </td> <td align="left" valign="middle" width="90%" bgcolor="#F1F1EA"> 9.00-20.00<br>выходной: 9.00-14.00 </td> </tr><tr> <td align="right" valign="middle" width="10%" bgcolor="#F1F1EA"> Отзывы: </td> <td align="left" valign="middle" width="90%" bgcolor="#F1F1EA"> <a href='#comment'><u>Прочитать/оставить комментарий к фирме</u></a> </td> </tr><tr> <td align="right" valign="middle" width="10%" bgcolor="#F1F1EA"> Специальная информация: </td> <td align="left" valign="middle" width="90%" bgcolor="#F1F1EA"> ИД Желтые страницы готов поделиться секретной информацией: тел. 258424. </td> </tr><tr> <td align="right" valign="middle" width="10%" bgcolor="#F1F1EA"> Вакансии: </td> <td align="left" valign="middle" width="90%" bgcolor="#F1F1EA"> <a target=_blank href='/mail/vakans.php?name=Диалог, образовательный центр, ООО' onmouseover="Tip('(Добавляются самой организацией)')" onmouseout="UnTip()">Добавить/редактировать вакансии </a> </td> </tr><tr> <td align="right" valign="middle" width="10%" bgcolor="#F1F1EA"> Наши потребности: </td> <td align="left" valign="middle" width="90%" bgcolor="#F1F1EA"> <a target=_blank href='/mail/tender.php?name=Диалог, образовательный центр, ООО' onmouseover="Tip('(Если организация выставляет товар или услугу на тендер, она добавляет это здесь)')" onmouseout="UnTip()">Добавить/редактировать потребности</a> </td> </tr><tr> Использую регулярное выражение: Code: preg_match_all('/<td align="left" valign="middle" width="90%" bgcolor="#F1F1EA">(.*?)<\/td>/',$html,$list); В итоге выдает пустые значения. Думал что спать пора, но как выяснилось что в теле страницы донора, значения не расположены в одной строке и по этому как бы preg_match_all не находит искомой комбинации. Суть вопроса в следующем, как перед preg_match_all код донора привести в понятный вид для preg_match_all. Заранее благодарю.
Я SimpleDom как раз таки и использую, а вопрос поясню... Код страницы донора, preg_match_all не понимает, вернее он его понимает, все норм, но в коде теги по которым идет ориентир, стоят не в одной строке а раскиданы по строкам, хотя идут последовательно, html интерпретатор это все понимает, а вот preg_match_all не видит эти теги и получается что выдача нулевая. Как эти теги поднять до нужного уровня.. пример: Code: <td align="left" valign="middle" width="90%" bgcolor="#F1F1EA"> 9.00-20.00<br>выходной: 9.00-14.00 </td> нужно превратить в Code: <td align="left" valign="middle" width="90%" bgcolor="#F1F1EA">9.00-20.00<br>выходной: 9.00-14.00</td> В первом случае preg_match_all не работает, а во втором прекрасно все работает.
Модификатор \s, он имитирует пробелы, и кажеться переносы строк, trimom можно привести строку в такой вид как у вас (strtrim).
если совсем уж по-варварски.. $enter=" "; $text="много поебени с переносом строк"; $htext=htmlspecialchars($text); $htext=str_replace("$enter",'',$htext); $htext=str_replace("<br>",'',$htext); $htext=str_replace("\n","",$htext); echo("$htext рулит");
Это очень по варварски. Code: $htext=str_replace("<br>",'',$htext); br зачем трогать? Его только броузер интерпретрует как перенос, в строке это просто br PHP: $enter=" ";
PHP: $content = base64_decode('PHRkIGFsaWduPSJyaWdodCIgdmFsaWduPSJtaWRkbGUiIHdpZHRoPSIxMCUiIGJnY29sb3I9IiNGMUYxRUEiPgogICAgICAgICAgICAgINCT0L7RgNC+0LQ6CiAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249Im1pZGRsZSIgd2lkdGg9IjkwJSIgYmdjb2xvcj0iI0YxRjFFQSI+CiAgICAgICAgICAgICAgJm5ic3A70KDRj9C30LDQvdGMCiAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8L3RyPgogICAgICAgICAgIDx0cj4KICAgICAgICAgICA8dGQgYWxpZ249InJpZ2h0IiB2YWxpZ249Im1pZGRsZSIgd2lkdGg9IjEwJSIgYmdjb2xvcj0iI0YxRjFFQSI+CiAgICAgICAgICAgINCQ0LTRgNC10YE6CiAgICAgICAgICAgPC90ZD4KICAgICAgICAgICA8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0ibWlkZGxlIiB3aWR0aD0iOTAlIiBiZ2NvbG9yPSIjRjFGMUVBIj4KICAgICAgICAgICAgJm5ic3A70YPQuy4g0KDQsNC00LjRidC10LLQsCwg0LQuIDYxLCDQvtGELiAyNQogICAgICAgICAgIDwvdGQ+CiAgICAgICAgICA8L3RyPjx0cj4KICAgICAgICAgICA8dGQgYWxpZ249InJpZ2h0IiB2YWxpZ249Im1pZGRsZSIgd2lkdGg9IjEwJSIgYmdjb2xvcj0iI0YxRjFFQSI+CiAgICAgICAgICAgINCi0LXQu9C10YTQvtC9OgogICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249Im1pZGRsZSIgd2lkdGg9IjkwJSIgYmdjb2xvcj0iI0YxRjFFQSI+CiAgICAgICAgICAgICZuYnNwOzk5NTU0NwogICAgICAgICAgIDwvdGQ+CiAgICAgICAgICA8L3RyPjx0cj4KICAgICAgICAgICAgIDx0ZCBhbGlnbj0icmlnaHQiIHZhbGlnbj0ibWlkZGxlIiB3aWR0aD0iMTAlIiBiZ2NvbG9yPSIjRjFGMUVBIj4KICAgICAgICAgICAgICDQkNC00YDQtdGBINGN0LvQtdC60YLRgNC+0L3QvdC+0Lkg0L/QvtGH0YLRizoKICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICA8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0ibWlkZGxlIiB3aWR0aD0iOTAlIiBiZ2NvbG9yPSIjRjFGMUVBIj4KICAgICAgICAgICAgICAmbmJzcDs8YSBocmVmPSJtYWlsdG86ZGlhbG9nLXJAbWFpbC5ydSI+ZGlhbG9nLXJAbWFpbC5ydTwvYT4KICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICA8L3RyPjx0cj4KICAgICAgICAgICAgICA8dGQgYWxpZ249InJpZ2h0IiB2YWxpZ249Im1pZGRsZSIgd2lkdGg9IjEwJSIgYmdjb2xvcj0iI0YxRjFFQSI+CiAgICAgICAgICAgICAgIFVSTCAvIFdlYnNpdGU6CiAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICA8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0ibWlkZGxlIiB3aWR0aD0iOTAlIiBiZ2NvbG9yPSIjRjFGMUVBIj4KICAgICAgICAgICAgICAgJm5ic3A7PGEgcmVsPSJub2ZvbGxvdyIgaHJlZj0iL291dC5waHA/SUQ9OTk5OSZwPSIgdGFyZ2V0PSJfYmxhbmsiPnd3dy5kaWFsb2ctci5ydQogICAgICAgICAgICAgICAgICAgICA8L2E+ICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgPC90cj48dHI+CiAgICAgICAgICAgPHRkIGFsaWduPSJyaWdodCIgdmFsaWduPSJtaWRkbGUiIHdpZHRoPSIxMCUiIGJnY29sb3I9IiNGMUYxRUEiPgogICAgICAgICAgICDQlNC40YDQtdC60YLQvtGAOgogICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249Im1pZGRsZSIgd2lkdGg9IjkwJSIgYmdjb2xvcj0iI0YxRjFFQSI+CiAgICAgICAgICAgICZuYnNwO9Cn0LXQv9GD0YDQvdGL0YUg0JXQu9C10L3QsCDQodC10YDQs9C10LXQstC90LAKICAgICAgICAgICA8L3RkPgogICAgICAgICAgPC90cj48dHI+CiAgICAgICAgICA8dGQgdmFsaWduPSJ0b3AiIGFsaWduPSJyaWdodCIgdmFsaWduPSJtaWRkbGUiIHdpZHRoPSIxMCUiIGJnY29sb3I9IiNGMUYxRUEiPgogICAgICAgICAgINCg0LDRgdGI0LjRgNC10L3QvdCw0Y8g0LjQvdGE0L7RgNC80LDRhtC40Y86CiAgICAgICAgICA8L3RkPgogICAgICAgICAgPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249Im1pZGRsZSIgd2lkdGg9IjkwJSIgYmdjb2xvcj0iI0YxRjFFQSI+CiAgICAgICAgICAKCjxiciAvPgogICAgICAgICAgIDwvdGQ+CiAgICAgICAgIDwvdHI+PC90ZD4KICAgICAgICAgPC90cj48dHI+CiAgICAgICAgICAgPHRkIGFsaWduPSJyaWdodCIgdmFsaWduPSJtaWRkbGUiIHdpZHRoPSIxMCUiIGJnY29sb3I9IiNGMUYxRUEiPgogICAgICAgICAgICDQktGA0LXQvNGPINGA0LDQsdC+0YLRizoKICAgICAgICAgICA8L3RkPgogICAgICAgICAgIDx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJtaWRkbGUiIHdpZHRoPSI5MCUiIGJnY29sb3I9IiNGMUYxRUEiPgogICAgICAgICAgICA5LjAwLTIwLjAwPGJyPtCy0YvRhdC+0LTQvdC+0Lk6IDkuMDAtMTQuMDAKICAgICAgICAgICA8L3RkPgogICAgICAgICAgPC90cj48dHI+CiAgICAgICAgICAgPHRkIGFsaWduPSJyaWdodCIgdmFsaWduPSJtaWRkbGUiIHdpZHRoPSIxMCUiIGJnY29sb3I9IiNGMUYxRUEiPgogICAgICAgICAgICDQntGC0LfRi9Cy0Ys6CiAgICAgICAgICAgPC90ZD4KICAgICAgICAgICA8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0ibWlkZGxlIiB3aWR0aD0iOTAlIiBiZ2NvbG9yPSIjRjFGMUVBIj4KICAgICAgICAgICAgPGEgaHJlZj0nI2NvbW1lbnQnPjx1PtCf0YDQvtGH0LjRgtCw0YLRjC/QvtGB0YLQsNCy0LjRgtGMINC60L7QvNC80LXQvdGC0LDRgNC40Lkg0Log0YTQuNGA0LzQtTwvdT48L2E+CiAgICAgICAgICAgPC90ZD4KICAgICAgICAgIDwvdHI+PHRyPgogICAgICAgICAgIDx0ZCBhbGlnbj0icmlnaHQiIHZhbGlnbj0ibWlkZGxlIiB3aWR0aD0iMTAlIiBiZ2NvbG9yPSIjRjFGMUVBIj4KICAgICAgICAgICAg0KHQv9C10YbQuNCw0LvRjNC90LDRjyDQuNC90YTQvtGA0LzQsNGG0LjRjzoKICAgICAgICAgICA8L3RkPgogICAgICAgICAgIDx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJtaWRkbGUiIHdpZHRoPSI5MCUiIGJnY29sb3I9IiNGMUYxRUEiPgogICAgICAgICAgICAmbmJzcDsg0JjQlCDQltC10LvRgtGL0LUg0YHRgtGA0LDQvdC40YbRiyDQs9C+0YLQvtCyINC/0L7QtNC10LvQuNGC0YzRgdGPINGB0LXQutGA0LXRgtC90L7QuSDQuNC90YTQvtGA0LzQsNGG0LjQtdC5OiDRgtC10LsuIDI1ODQyNC4KICAgICAgICAgICA8L3RkPgogICAgICAgICAgPC90cj48dHI+CiAgICAgICAgICAgPHRkIGFsaWduPSJyaWdodCIgdmFsaWduPSJtaWRkbGUiIHdpZHRoPSIxMCUiIGJnY29sb3I9IiNGMUYxRUEiPgogICAgICAgICAgICDQktCw0LrQsNC90YHQuNC4OgogICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249Im1pZGRsZSIgd2lkdGg9IjkwJSIgYmdjb2xvcj0iI0YxRjFFQSI+CiAgICAgICAgICAgICZuYnNwOyA8YSB0YXJnZXQ9X2JsYW5rIGhyZWY9Jy9tYWlsL3Zha2Fucy5waHA/bmFtZT3QlNC40LDQu9C+0LMsINC+0LHRgNCw0LfQvtCy0LDRgtC10LvRjNC90YvQuSDRhtC10L3RgtGALCDQntCe0J4nIG9ubW91c2VvdmVyPSJUaXAoJyjQlNC+0LHQsNCy0LvRj9GO0YLRgdGPINGB0LDQvNC+0Lkg0L7RgNCz0LDQvdC40LfQsNGG0LjQtdC5KScpIiBvbm1vdXNlb3V0PSJVblRpcCgpIj7QlNC+0LHQsNCy0LjRgtGML9GA0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINCy0LDQutCw0L3RgdC40LggPC9hPgogICAgICAgICAgIDwvdGQ+CiAgICAgICAgICA8L3RyPjx0cj4KICAgICAgICAgICA8dGQgYWxpZ249InJpZ2h0IiB2YWxpZ249Im1pZGRsZSIgd2lkdGg9IjEwJSIgYmdjb2xvcj0iI0YxRjFFQSI+CiAgICAgICAgICAgICDQndCw0YjQuCDQv9C+0YLRgNC10LHQvdC+0YHRgtC4OgogICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249Im1pZGRsZSIgd2lkdGg9IjkwJSIgYmdjb2xvcj0iI0YxRjFFQSI+CiAgICAgICAgICAgICZuYnNwOyA8YSB0YXJnZXQ9X2JsYW5rIGhyZWY9Jy9tYWlsL3RlbmRlci5waHA/bmFtZT3QlNC40LDQu9C+0LMsINC+0LHRgNCw0LfQvtCy0LDRgtC10LvRjNC90YvQuSDRhtC10L3RgtGALCDQntCe0J4nIG9ubW91c2VvdmVyPSJUaXAoJyjQldGB0LvQuCDQvtGA0LPQsNC90LjQt9Cw0YbQuNGPINCy0YvRgdGC0LDQstC70Y/QtdGCINGC0L7QstCw0YAg0LjQu9C4INGD0YHQu9GD0LPRgyDQvdCwINGC0LXQvdC00LXRgCwg0L7QvdCwINC00L7QsdCw0LLQu9GP0LXRgiDRjdGC0L4g0LfQtNC10YHRjCknKSIgb25tb3VzZW91dD0iVW5UaXAoKSI+0JTQvtCx0LDQstC40YLRjC/RgNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQv9C+0YLRgNC10LHQvdC+0YHRgtC4PC9hPgogICAgICAgICAgIDwvdGQ+CiAgICAgICAgICA8L3RyPjx0cj4='); preg_match_all('@<td align="left" valign="middle" width="90%" bgcolor="#F1F1EA">\n\s+(.*)<br>@', $content, $matches); echo $matches[1][0];