Как делают меня linkify URL в строке с php?

Да, вы можете получить графический интерфейс. Вам понадобится (i) система X-windows, работающая на вашем локальном компьютере, и (ii) использовать параметр -X для ssh, чтобы включить пересылку X11. Более подробный ответ:

  1. С вашего локального терминала проверьте, включена ли переменная окружения DISPLAY. Например. из терминала на моем mac: echo $DISPLAY возвращает /private/tmp/com.apple.launchd.y9pXfRNnTu/org.macosforge.xquartz:0 Если переменная окружения DISPLAY не установлена, вам, вероятно, необходимо правильно установить X-сервер (например, для Mac OS X это X11.app).
  2. При входе на удаленную машину с помощью ssh используйте параметр -X, чтобы включить пересылку X11. Например. из вашего локального типа терминала: ssh -X username@remotehost.com, где имя пользователя и remotehost - ваше имя пользователя и имя удаленного хоста соответственно. С опцией -X SSH сделает все это волшебным образом: ssh установит переменную окружения DISPLAY на удаленном компьютере на порт. Ssh прослушивает и направляет графические данные обратно назад к адресу в вашей локальной переменной окружения DISPLAY, который должен указывать на ваш локальный X-сервер.

Btw, если вы не правы рядом с сетью кластера, это, вероятно, будет! @ # $! @ # $ slow & amp; раздражает. Если вы студент, я очень рекомендую поднять и получить студенческий выпуск Matlab, чтобы вы могли запускать GUI локально. Студенческая версия не так дорого.

32
задан Alex 3 February 2009 в 15:25
поделиться

6 ответов

Можно использовать следующее:

$string = "Look on http://www.google.com";
$string = preg_replace(
              "~[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]~",
              "<a href=\"\\0\">\\0</a>", 
              $string);

версии PHP < 5.3 (ereg_replace) иначе (preg_replace)

59
ответ дан 27 November 2019 в 19:58
поделиться

lib_autolink делает довольно хорошее задание, избегая ловушек как дополнительная пунктуация после ссылки и связывает внутренние HTML-тэги:

https://github.com/iamcal/lib_autolink

21
ответ дан 27 November 2019 в 19:58
поделиться

Взгляните на регулярные выражения . Вы затем сделали бы что-то как :

$text = preg_replace('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@', '<a href="$1">$1</a>', $text);
6
ответ дан 27 November 2019 в 19:58
поделиться

Необходимо будет использовать регулярные выражения...

Что-то вроде этого поможет.

$result = preg_replace('/\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[A-Z0-9+&@#\/%=~_|]/i', '<a href="\0">\0</a>', $text);
2
ответ дан 27 November 2019 в 19:58
поделиться

Я нашел пример, который позволяет использовать ссылки, включающие ftp, https и другие, который, кажется, отлично работает для нескольких URL-адресов

how-to-detect-urls-in-text-and- convert-to-html-links-php-using-regular-expressions

<?php
// The Regular Expression filter
$pattern = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";

//example text
$text="Example user text with a URL http://www.zero7web.com , second link http://www.didsburydesign.co.uk";

// convert URLs into Links
$text= preg_replace($pattern, "<a href=\"\\0\" rel=\"nofollow\">\\0</a>", $text);

echo $text;
?>

Вероятно, неплохо добавить nofollow к ссылке, если это значение, отправленное пользователем.

1
ответ дан 27 November 2019 в 19:58
поделиться

Попробуйте это ...

<?

   function link_it($text)  
   {  
        $text= preg_replace("/(^|[\n ])([\w]*?)([\w]*?:\/\/[\w]+[^ \,\"\n\r\t<]*)/is", "$1$2<a href=\"$3\" >$3</a>", $text);  
        $text= preg_replace("/(^|[\n ])([\w]*?)((www)\.[^ \,\"\t\n\r<]*)/is", "$1$2<a href=\"http://$3\" >$3</a>", $text);
                $text= preg_replace("/(^|[\n ])([\w]*?)((ftp)\.[^ \,\"\t\n\r<]*)/is", "$1$2<a href=\"ftp://$3\" >$3</a>", $text);  
        $text= preg_replace("/(^|[\n ])([a-z0-9&\-_\.]+?)@([\w\-]+\.([\w\-\.]+)+)/i", "$1<a href=\"mailto:$2@$3\">$2@$3</a>", $text);  
        return($text);  
    }


$text = "ini link gue: http://sapua.com <br>
https://sapua.com <br>
anything1://www.sss.com <br>

dua www.google.com <br>
tiga http://www.google.com <br>

ftp.sapua.com <br>

someone@sapua.com


";

print link_it($text);

?>
2
ответ дан 27 November 2019 в 19:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: