Компьютерный форум NoWa.cc

Компьютерный форум NoWa.cc (https://nowa.cc/index.php)
-   PHP (https://nowa.cc/forumdisplay.php?f=305)
-   -   RCPE в PHP как сделать маску не пойму. (https://nowa.cc/showthread.php?t=198251)

Trojanets 30.12.2008 22:51

RCPE в PHP как сделать маску не пойму.
 
Хочу написать скрипт который бы менял теги из файла содержащего 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>";


// теперь вынимаем ссылку и имя линка
?>

Bacchus 05.01.2009 23:25

Re: RCPE в PHP как сделать маску не пойму.
 
тут все не плохо, но недоработано (ну а с опытом оптимизируешь)
? что будешь делать если это все на разных строках,
или тэг а написан по другому типа <а href='...' >...</a >,
или <a target=blank href = "... и т.д.
начинать нужно с поиска "<a" и конец у него должен быть "</a" а вот середину уже парсишь по другим регулярным
тут можно все одним регулярным выражением описать, обойти по циклам или preg_replace.
пробуй инструмент regulator или regulazy или под php найди в нэте чего-нить для отладки регулярных выражений.


Текущее время: 02:39. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2026, vBulletin Solutions, Inc. Перевод: zCarot
Copyright ©2004 - 2026 NoWa.cc

Время генерации страницы 0.02358 секунды с 9 запросами