![]() |
|
| Правила Форума редакция от 22.06.2020 |
|
|||||||
|
|
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже. |
|
![]() |
|
|
Опции темы | Опции просмотра |
Language
|
|
|
#1
|
|
Новичок
![]() ![]() Пол:
Регистрация: 06.01.2007
Сообщений: 28
Репутация: 48
|
Хочу написать скрипт который бы менял теги из файла содержащего html код страницы
<a href="...."> .... </a> на <script> document.write('<a href="..."> .... </a>'); </script> Вот стоит такая задача. Хочу решать следующем способом: $lines=file(html.html); //Получили строки for ($i=0;$i<=count($lines);$i++) { Идем по строкам .... и вот тут нужно представить вхождение <a в строке как это пишется ? preg_match('/^<a+/mi',$lines[i], $matches); ??? ^ c начала строки символы < и a с жадностью до конца строки, и тогда в $matches[0] должно быть "<a ........ " а далее с конца $new_line=$matches[0]; preg_match('/+</a>$/mi',$new_line,$matches); $new_line=$matches[0]; так чтоль ? } Я просто начинающий програмист и поэтому рука еще не набита в написании примитивных вещей. P.S. php.net читаю. так разобрался как выделить: <?php $lines=" lalala <a href=\"test\">test</a> llll"; $matches=preg_split('/<a href=+/i',$lines,-1); $new_line="<a href=".$matches[1]; $matches=""; $matches=preg_split('/\<\/a>+/i',$new_line,-1); $new_line=$matches[0]."</a>"; echo "line is: ".$new_line."<br>"; ?> выделил строку ну собственно и все осталось дело техники вопроса. И того полностью решение данного вопроса: <?php // Данный код вырезает из строки ссылку <a href="...">....</a> $lines=' lalala <a href="te123st">tes324234t</a> llll'; $matches=preg_split('/<a href=+/i',$lines,-1); $new_line="<a href=".$matches[1]; $links=preg_split('/"/i',$matches[1],-1); $link=$links[1]; $text_links=preg_split('/>+/i',$links[2]); $text_link=$text_links[1]; unset($text_links); $text_links=preg_split('/<\/a/i',$text_link,-1); $text_link=$text_links[0]; unset($text_links); unset($matches); $matches=preg_split('/\<\/a>+/i',$new_line,-1); $new_line=$matches[0]."</a>"; unset($matches); $new_line=trim($new_line); //Удаляем пробелы. $link=trim($link); $text_link=trim($text_link); echo "line is: ".$new_line."<br>"; echo "link is: ".$link."<br>"; echo "text of link is: ".$text_link."<br>"; // теперь вынимаем ссылку и имя линка ?> Последний раз редактировалось Trojanets; 31.12.2008 в 00:15.. Причина: Все стало понятно. Решено. |
|
|
|
| Реклама: | букет цветов мужской | yougile google calendar | провинциальный детектив почему сменили актрису | руки вверх купить билеты 2026 | приточки крышные |
|
|
#2
|
|
Пользователь
Пол:
Регистрация: 24.01.2008
Сообщений: 39
Репутация: 8
|
тут все не плохо, но недоработано (ну а с опытом оптимизируешь)
? что будешь делать если это все на разных строках, или тэг а написан по другому типа <а href='...' >...</a >, или <a target=blank href = "... и т.д. начинать нужно с поиска "<a" и конец у него должен быть "</a" а вот середину уже парсишь по другим регулярным тут можно все одним регулярным выражением описать, обойти по циклам или preg_replace. пробуй инструмент regulator или regulazy или под php найди в нэте чего-нить для отладки регулярных выражений. Последний раз редактировалось Bacchus; 05.01.2009 в 23:28.. |
|
|
|
![]() |
Похожие темы
|
||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| Какую маску Вы одеваете? | subvic | Внутренний мир | 57 | 20.11.2020 15:27 |
| Не пойму в чем дело | frederik | Компьютерные проблемы | 7 | 18.06.2009 18:44 |
| переход на новую маску подсети, вопросы и проблемы | semiora | Windows 200x Server | 6 | 30.11.2008 21:41 |
| OC fail - что-то не пойму в чём дело? | ollleg | Архив | 8 | 05.12.2007 23:54 |
| Не пойму что за вирус такой ... | THunderHead | Архив | 3 | 12.10.2007 09:50 |
|
|