[wp-trac] [WordPress Trac] #22946: Default filter erroneously turns FTP hostnames into HTTP links
WordPress Trac
noreply at wordpress.org
Sat Dec 15 03:06:22 UTC 2012
#22946: Default filter erroneously turns FTP hostnames into HTTP links
---------------------------+------------------------------
Reporter: DavidAnderson | Owner:
Type: defect (bug) | Status: new
Priority: normal | Milestone: Awaiting Review
Component: Formatting | Version: 2.0.4
Severity: normal | Resolution:
Keywords: |
---------------------------+------------------------------
Changes (by SergeyBiryukov):
* version: trunk => 2.0.4
* component: General => Formatting
Old description:
> The function _make_web_ftp_clickable_cb in wp-includes/formatting.php is
> invoked upon any hostname matching "www." or "ftp." at the beginning. It
> pre-pends 'http://' and makes the link clickable (i.e. wraps it in <a
> href="">).
>
> As a default that makes sense for things beginning www. - but not for
> everything beginning ftp.
>
> In my case, I was using the plugin WP Better Emails, and sent out an
> email with this line (approx):
>
> 'Here is the FTP server: ftp.example.com'
>
> WP, by default, "helpfully" totally mangles this into:
> 'Here is the FTP server: <a
> href="http://ftp.example.com">http://ftp.example.com</a>'
>
> The recipient of my email now believes that I was sending him an HTTP
> link, and is confused that it does not work. But in fact I never sent
> such a link - that was WordPress mangling what I did send.
>
> Sure, some FTP servers will also have HTTP listening. But by default
> WordPress assumes that they all do, which is crazy.
>
> Proposed solution: on line 1471 of wp-includes/formatting.php (as found
> in 3.4.2), change:
>
> $ret = preg_replace_callback(
> '#([\s>])((www|ftp)\.[\w\\x80-\\xff\#$%&~/.\-;:=,?@\[\]+]+)#is',
> '_make_web_ftp_clickable_cb', $ret );
>
> by removing the "ftp" case, hence:
>
> $ret = preg_replace_callback(
> '#([\s>])((www)\.[\w\\x80-\\xff\#$%&~/.\-;:=,?@\[\]+]+)#is',
> '_make_web_ftp_clickable_cb', $ret );
>
> The function _make_web_ftp_clickable_cb should then be renamed by
> removing ftp_, since the case of turning FTP hostnames into clickable
> HTTP links would have been removed.
New description:
The function _make_web_ftp_clickable_cb in wp-includes/formatting.php is
invoked upon any hostname matching "www." or "ftp." at the beginning. It
pre-pends 'http://' and makes the link clickable (i.e. wraps it in <a
href="">).
As a default that makes sense for things beginning www. - but not for
everything beginning ftp.
In my case, I was using the plugin WP Better Emails, and sent out an email
with this line (approx):
`Here is the FTP server: ftp.example.com`
WP, by default, "helpfully" totally mangles this into:
`Here is the FTP server: <a
href="http://ftp.example.com">http://ftp.example.com</a>`
The recipient of my email now believes that I was sending him an HTTP
link, and is confused that it does not work. But in fact I never sent such
a link - that was WordPress mangling what I did send.
Sure, some FTP servers will also have HTTP listening. But by default
WordPress assumes that they all do, which is crazy.
Proposed solution: on line 1471 of wp-includes/formatting.php (as found in
3.4.2), change:
{{{
$ret = preg_replace_callback(
'#([\s>])((www|ftp)\.[\w\\x80-\\xff\#$%&~/.\-;:=,?@\[\]+]+)#is',
'_make_web_ftp_clickable_cb', $ret );
}}}
by removing the "ftp" case, hence:
{{{
$ret = preg_replace_callback(
'#([\s>])((www)\.[\w\\x80-\\xff\#$%&~/.\-;:=,?@\[\]+]+)#is',
'_make_web_ftp_clickable_cb', $ret );
}}}
The function _make_web_ftp_clickable_cb should then be renamed by removing
ftp_, since the case of turning FTP hostnames into clickable HTTP links
would have been removed.
--
Comment:
Related: [4011]
--
Ticket URL: <http://core.trac.wordpress.org/ticket/22946#comment:2>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software
More information about the wp-trac
mailing list