|
|
|
| Нужно заменить url, на знак вопроса. Проблема в том что привязатся почти не к чему. Url может быть любым...
http://поддомен.домен.доменная зона/папка/?параметры
www.поддомен.домен.доменная зона/папка/?параметры
поддомен.домен.доменная зона/папка/?параметры
Можно ли это сделать рег выражениями?
interes | |
|
|
|
|
|
|
|
для: Штеукуы
(31.07.2007 в 17:52)
| | Сейчас что-то голова плохо варит, написал, попробуйте это:
preg_replace("|http://(www\.)?([a-z_-0-9]+\.)+(/.*/)*(\?.*)?|is","\?",$str);
|
| |
|
|
|
|
|
|
|
для: Штеукуы
(31.07.2007 в 17:52)
| | Не то :(
<?
$str = array(
'текст http://softtime.ru/forum/read.php?id_forum=6&id_theme=41336&page=1 и тут немного',
'текста softtime.ru/forum/read.php?id_forum=6&id_theme=41336&page=1 везде понемногу',
'немножко на последок www.softtime.ru/forum/read.php',
'softtime.ru тут почти нет',
'a tut ssilok net');
foreach($str as $value)
echo preg_replace("|http://(www\.)?([a-z_-0-9]+\.)+(/.*/)*(\?.*)?|is","\?", $value)."<br>";
?>
|
| |
|
|
|
|
|
|
|
для: Штеукуы
(31.07.2007 в 19:32)
| | Я могу предложить вариант только для ссылок, начинающихся на http:
<?
echo preg_replace("|(.*)http(s)?://.*\s(.*)|isU","\\1?\\3", $str);
?>
|
| |
|
|
|
|
|
|
|
для: ddhvvn
(31.07.2007 в 20:01)
| | Спасибо, но он не справится с такой строкой :(
<?
$str = 'тут текст, а потом просто ссылка, пробела в коце нет http://softtime.ru/forum/answer.php?id_forum=6&id_theme=41336&id_post=237346';
echo preg_replace("|(.*)http(s)?://.*\s(.*)|isU","\\1?\\3", $str);
?>
|
| |
|
|
|
|
|
|
|
для: ddhvvn
(31.07.2007 в 20:01)
| | Вот что у меня есть не регулярными ;) Может всетаки это можно сделать в пару строк?
<?
$domenZone = array(
'.ru',
'.com',
'.net',
'.ua',
'.info'
);
$str = 'www.softtime.info/ ку ку mumu.ru asdasd http://softtime.ru/forum/read.php?id_forum=6&id_theme=41336&page=1 dasdas';
$foundet = substr_count_array( $str, $domenZone );
$str = replaceUrl($str, $foundet, '?');
echo $str;
function substr_count_array( $haystack, $needle ) {
$foundet = false;
foreach ($needle as $substring)
{
$countNeedle = substr_count( $haystack, $substring);
if ($countNeedle > 0)
{
$foundet[] = array(
'urlZone' => $substring,
'count' => $countNeedle);
}
}
return $foundet;
}
function replaceUrl($str, $foundet, $replacement)
{
if (!is_array($foundet))
return false;
foreach ($foundet AS $value)
{
for ($i =0; $i< $value['count']; $i++)
{
$posFoundet = strpos($str, $value['urlZone']);
$posEnd = strpos($str, ' ', $posFoundet);
$posEnd = ($posEnd)?($posEnd):(strlen($str));
$posStart = strlen($str) - strpos(strrev($str), ' ', strlen($str)-$posFoundet);
$posStart = ($posStart < strlen($str))?($posStart):(0);
$url = substr($str, $posStart, $posEnd-$posStart);
$str = str_replace($url, $replacement, $str);
}
}
return $str;
}
?>
|
interes | |
|
|
|
|
|
|
|
для: Штеукуы
(01.08.2007 в 16:13)
| | В коде не разбирался, но вот вроде что-то похожее:
<?php
$str = '.........';
echo preg_replace("#(http://)?([a-z0-9-.]+\.)+(com|ru|net|ogr|ua|info)(/\S*)?#is", "?", $str);
|
| |
|
|
|