/usr/share/php/kohana3.1/modules/codebench/classes/bench/mddoimageurl.php is in libkohana3.1-mod-codebench-php 3.1.5-1.1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | <?php defined('SYSPATH') OR die('No direct script access.');
/**
* @package Kohana/Codebench
* @category Tests
* @author Geert De Deckere <geert@idoe.be>
*/
class Bench_MDDoImageURL extends Codebench {
public $description =
'Optimization for the <code>doImageURL()</code> method of <code>Kohana_Kodoc_Markdown</code>
for the Kohana Userguide.';
public $loops = 10000;
public $subjects = array
(
// Valid matches
'![Alt text](http://img.skitch.com/20091019-rud5mmqbf776jwua6hx9nm1n.png)',
'![Alt text](https://img.skitch.com/20091019-rud5mmqbf776jwua6hx9nm1n.png)',
'![Alt text](otherprotocol://image.png "Optional title")',
'![Alt text](img/install.png "Optional title")',
'![Alt text containing [square] brackets](img/install.png)',
'![Empty src]()',
// Invalid matches
'![Alt text](img/install.png "No closing parenthesis"',
);
public function bench_original($subject)
{
return preg_replace_callback('~!\[(.+?)\]\((\S*(?:\s*".+?")?)\)~', array($this, '_add_image_url_original'), $subject);
}
protected function _add_image_url_original($matches)
{
if ($matches[2] AND strpos($matches[2], '://') === FALSE)
{
// Add the base url to the link URL
$matches[2] = 'http://BASE/'.$matches[2];
}
// Recreate the link
return "![{$matches[1]}]({$matches[2]})";
}
public function bench_optimized_callback($subject)
{
// Moved the check for "://" to the regex, simplifying the callback function
return preg_replace_callback('~!\[(.+?)\]\((?!\w++://)(\S*(?:\s*+".+?")?)\)~', array($this, '_add_image_url_optimized'), $subject);
}
protected function _add_image_url_optimized($matches)
{
// Add the base url to the link URL
$matches[2] = 'http://BASE/'.$matches[2];
// Recreate the link
return "![{$matches[1]}]({$matches[2]})";
}
public function bench_callback_gone($subject)
{
// All the optimized callback was doing now, is prepend some text to the URL.
// We don't need a callback for that, and that should be clearly faster.
return preg_replace('~(!\[.+?\]\()(?!\w++://)(\S*(?:\s*+".+?")?\))~', '$1http://BASE/$2', $subject);
}
}
|