поиск отределенной фразы с различными разделителями

delaf

Новичок
поиск отределенной фразы с различными разделителями

есть строка
лытвлатывдатывдатыво href="http://www.1.ru/" djkasnd;cnasl;dnc href="http://www.2.ru/" sadmfasmdklfm etc

Как мне получить в массиве в чистом виде все
что начинается от ( href="http://) и заканчивается ( /" )

PS. вроде чтото с preg_match должно...
 

XiMiK

Новичок
непроверял, но что-то вроде этого:
preg_match("/href=\"http:\/\/(.*)?\//iU", $string);
 

StUV

Rotaredom
PHP:
$text   =  'asrfgsdfgsdfgsdfgsdfg '.
	'href="http://www.1.ru/" djkasnd;cnas'.
	'l;dnc href="http://www.2.ru/" sadmfasmd';
preg_match_all('|href="http://.*/"|U',  $text, $matches);
echo '<PRE>';
print_r($matches);
 

XiMiK

Новичок
%) да с ? я конечно загнул, сори, но модификатор i я бы поставил. Может HREF вместо href попадётся.
 

XiMiK

Новичок
! пора мне на покой, я совсем ослеп, пойду отсыпатся...
 

delaf

Новичок
Originally posted by XiMiK
непроверял, но что-то вроде этого:
preg_match("/href=\"http:\/\/(.*)?\//iU", $string);
а если так, где касяк получается?

<?
$fp = fopen("gb.inc", "w");
$fileread=file("spisok3.txt");
$kolnews = count($fileread);
for($i=$kolnews; $i>=0; $i--) {
preg_match_all('|http://.*/|U', $fileread[$i], $matches);
echo '<PRE>';
print_r($matches);

fwrite ($fp,"preg_match_all('|http://.*/|U', $fileread[$i], $matches); ");

}
fclose ($fp);
echo ("ok");
?>
 

StUV

Rotaredom
это вопрос ?
какой "касяк" ?
мне самому проверить или ты поделишься ?
=)))
 

delaf

Новичок
Originally posted by StUV
это вопрос ?
какой "касяк" ?
мне самому проверить или ты поделишься ?
=)))
нет, я серьезно... Если не затрудник, подскажи пжл как поправить
 

StUV

Rotaredom
для начала почувствуй разницу между
for($i=$kolnews; $i>=0; $i--)
и
for($i=$kolnews-1; $i>=0; $i--)
(hint: в php по умолчанию элементы массива нумеруются от 0 до count($arr)-1)
---------------------
а вообще - откуда я знаю, что у тебя в spisok3.txt ?
и зачем ты пишешь в файл результат возвращаемый preg_match_all ?
и что тебе не нравится в результатах работы твоего скрипта ?

т.е. - по пунктам:
1. что у тебя есть
2. что тебе надо получить
3. что у тебя получается
 

delaf

Новичок
Originally posted by StUV
для начала почувствуй разницу между
for($i=$kolnews; $i>=0; $i--)
и
for($i=$kolnews-1; $i>=0; $i--)
(hint: в php по умолчанию элементы массива нумеруются от 0 до count($arr)-1)
---------------------
а вообще - откуда я знаю, что у тебя в spisok3.txt ?
и зачем ты пишешь в файл результат возвращаемый preg_match_all ?
и что тебе не нравится в результатах работы твоего скрипта ?

т.е. - по пунктам:
1. что у тебя есть
2. что тебе надо получить
3. что у тебя получается
1. У меня есть файл spisok3.txt в нем n строк, с текстом пример которого я приводил (в каждой строке M url-ов)
2. Мне нужно избавиться от всего хлава, для этого я пытаюсь считывать файл построчно; разберать строку и находив урл, записывать его в файл (1 урл на одну строку).
3. у меня теперь не получается из двух мерного массива $matches по записывать в файл полученные данные по одному урлу на строку
 

StUV

Rotaredom
итак, рассмотрим скрипт:
PHP:
$text = array('aaa href="http://www.1.ru/" bbb  href="http://www.2.ru/" ccc',
'aaa href="http://www.3.ru/" bbb href="http://www.4.ru/" ccc'); 
$c = count($text);
for ($i = $c - 1; $i >= 0; $i--)	{
preg_match_all('|href="http://.*/"|U',  $text[$i], $matches); 
echo '<PRE>'; 
print_r($matches);
}
т.е. при каждом проходе цикла ты получаешь двумерный массив вида:
Array
(
[0] => Array
(
[0] => href="http://www.3.ru/"
[1] => href="http://www.4.ru/"
)

)

что из этого массива и в каком виде тебе надо получить в файле gb.inc ?
 

delaf

Новичок
Сверху