За последние 24 часа нас посетили 154428 программистов и 2946 роботов. Сейчас ищут 1808 программистов ...

регулярное выражение

Тема в разделе "PHP для новичков", создана пользователем zionko, 25 июн 2012.

  1. zionko

    zionko Активный пользователь

    С нами с:
    20 сен 2009
    Сообщения:
    22
    Симпатии:
    0
    как можно выловить URL из вывода до пробела

    Код (Text):
    1.  
    2. https://www.url.com/search?sugexp=chrome,mod=5&sourceid=chrome&ie=UTF-8&q=sdsd тексттексттексттексттекст
    3. www.site.com/search?sugexp=chrome  текст текст текст текст
    вот такой текст
     
  2. Gambit

    Gambit Активный пользователь

    С нами с:
    4 июн 2012
    Сообщения:
    108
    Симпатии:
    0
    $url = 'https://www.url.com/search?sugexp=chrome,mod=5&sourceid=chrome&ie=UTF-8&q=sdsd тексттексттексттексттекст';
    // ищем первое вхождение и выводим
    $result = strstr($url, ' ');
    // убираем пробел в начале
    echo substr($result, 1);
     
  3. zionko

    zionko Активный пользователь

    С нами с:
    20 сен 2009
    Сообщения:
    22
    Симпатии:
    0
    это понятно а если URL посреди текста ?

    Добавлено спустя 47 секунд:
    Код (Text):
    1. текст текст  текст текст текст текст текст  текст текст текст
    2. https://www.url.com/search?sugexp=chrome,mod=5&sourceid=chrome&ie=UTF-8&q=sdsd текст текст  текст текст текст
    3. текст текст  текст текст текст текст текст  текст текст текст текст текст  текст текст текст
     
  4. Gambit

    Gambit Активный пользователь

    С нами с:
    4 июн 2012
    Сообщения:
    108
    Симпатии:
    0
    а заранее предупрtждать не бывает? :D

    Добавлено спустя 9 минут 37 секунд:
    1 вопрос, а как понять какой URL надо ловить из всего этого флуда? хДД
     
  5. zionko

    zionko Активный пользователь

    С нами с:
    20 сен 2009
    Сообщения:
    22
    Симпатии:
    0
    любое что идет с http или www
     
  6. Gambit

    Gambit Активный пользователь

    С нами с:
    4 июн 2012
    Сообщения:
    108
    Симпатии:
    0
    тобишь их всех нужно записать в массив?
     
  7. zionko

    zionko Активный пользователь

    С нами с:
    20 сен 2009
    Сообщения:
    22
    Симпатии:
    0
    там будет preg_replace
    который найдет все URL и заменит их на на такиеже URL только уже с <a href=
     
  8. Gambit

    Gambit Активный пользователь

    С нами с:
    4 июн 2012
    Сообщения:
    108
    Симпатии:
    0
    тю епта так бы сразу и сказали. Ну я сейчас афк, чуть позже буду попробую сделать, если кто за меня это не успеет сделать))

    Добавлено спустя 4 минуты 14 секунд:
    а что будет вместо текста?)) в урл
     
  9. zionko

    zionko Активный пользователь

    С нами с:
    20 сен 2009
    Сообщения:
    22
    Симпатии:
    0
    так причем тут текст ? он заменит URL на <a href=URL>URL</a> и все , остальное будет как и было
     
  10. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Код (PHP):
    1. $url='https://www.url.com/search?sugexp=chrome,mod=5&sourceid=chrome&ie=UTF-8&q=sdsd текст текст  текст текст текст
    2. текст текст  текст текст текст текст текст  текст текст текст текст текст  текст текст текст';
    3.  
    4. function delete($str,$symbol=' ') 
    5. { 
    6.     return($strpos=mb_strpos($str,$symbol))!==false?mb_substr($str,0,$strpos,'utf8'):$str;
    7. } 
    Код (PHP):
    1. echo delete($url); #<---?sugexp=chrome,mod=5&sourceid=chrome&ie=UTF-8&q=sdsd 
    Код (PHP):
    1. echo delete($url,','); #<---?sugexp=chrome    
    viewtopic.php?f=13&t=39735&p=321809#p321809
     
  11. Gambit

    Gambit Активный пользователь

    С нами с:
    4 июн 2012
    Сообщения:
    108
    Симпатии:
    0
    а смысл? Разве что если урезать ее как показал Your.

    Your, хоть какая-то польза от тебя оказывается есть. Решил показать себя?)
     
  12. zionko

    zionko Активный пользователь

    С нами с:
    20 сен 2009
    Сообщения:
    22
    Симпатии:
    0
    да не надо урезать , просто сделать кликабельной и все
     
  13. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Код (PHP):
    1. $url='https://www.url.com/search?sugexp=chrome,mod=5&sourceid=chrome&ie=UTF-8&q=sdsd текст текст  текст текст текст
    2. текст текст  текст текст текст текст текст  текст текст текст текст текст  текст текст текст';
    3. $url=delete($url);
    4. echo str_replace($url,'[url="'.$url.'"]'.$url.'[/url]',$url); 
    :D
     
  14. Gambit

    Gambit Активный пользователь

    С нами с:
    4 июн 2012
    Сообщения:
    108
    Симпатии:
    0
    :D
     
  15. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Я не о том подумал.

    Код (PHP):
    1. $pattern=array('~((http://{0,})\S*)~i','~((https://{0,})\S*)~i');
    2.  
    3. $url='текст текст  текст текст текст текст текст  текст текст текст 
    4. http://www.url.com/search?sugexp=chrome,mod=5&sourceid=chrome&ie=UTF-8&q=sdsd текст текст  текст текст текст
    5. текст текст  текст текст https://www.url.com/ текст текст текст  текст текст текст текст текст  текст текст текст gfhf hgf gfh gfh fjh gfjh
    6. gjl;gjgf
    7. jhhg
    8. jg
    9. jh';
    10.  
    11. echo preg_replace($pattern,'[url="\\1"]\\1[/url]',$url); 
     
  16. zionko

    zionko Активный пользователь

    С нами с:
    20 сен 2009
    Сообщения:
    22
    Симпатии:
    0
    http://www.google.ru/<br>http://www.google.ru/<br>sdfsdf<br>sdf<br>sd

    <br> захватил как продолжение

    Добавлено спустя 11 минут 44 секунды:
    как можно пихнуть туда чтобы только те URL где рядом нет < > или "> знаков чтобы он не брал готовые <a href="URL"
     
  17. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Попробую что - нибудь придумать, если получится!
    Кину, если, что.
    А так пока можно типо такого, чтонибудь:
    Код (PHP):
    1. $array=array(
    2. 'preg_p'=>array('~((http://{0,})\S*)~i','~((https://{0,})\S*)~i'),
    3. 'preg_r'=>'[url="\\1"]\\1[/url]',
    4. 'str_p'=>array('<br>','<br />','<br/>'),
    5. 'str_r'=>array(' <br> ',' <br /> ',' <br/> '));
    6. $url='текст<br>http://www.url.com/search?sugexp=chrome,mod=5&sourceid=chrome&ie=UTF-8&q=sdsd<br>текстhttps://www.url.com/<br>https://www.url.com/<br>https://www.url.com/<br>';
    7. echo preg_replace($array['preg_p'],$array['preg_r'],str_replace($array['str_p'],$array['str_r'],$url));  
    Хз, к чему это еще можно отнести, думаю, что можно лучше сделать, только регуляркой, если, что кину...