<?php
$message = "This is a string using the terms? Wait here's one\n abukuma kai\nabukuma-kai\nabukuma\nabukuma\nkai abukuma abukuma kai";
$search = array(
'abukuma kai',
'abukuma'
);
$replacements = array(
// here all replaces | each in a new line - watch the syntax
// all html possible, but no single quotation mark!
'<a href="http://kancolle.wikia.com/wiki/Abukuma#Upgrade" class="screenshot" rel="ship/Abukuma_Kai.png" style="color:#0073e6; font-weight:bold; border-bottom: 1px #0073e6 dashed;"><p id="yosup">Abukuma Kai</p></a>',
'<a href="http://kancolle.wikia.com/wiki/Abukuma#Basic" class="screenshot" rel="ship/Abukuma.png" style="color:#0073e6; font-weight:bold; border-bottom: 1px #0073e6 dashed;">Abukuma</a>'
);
function replaceStrings($haystack, $needle, $replacement, $offset = 0) {
if (count($needle) != count($replacement)) {
throw new \InvalidArgumentException('Needle length must match replacement length');
}
$regexpDelimiter = '/';
$wordDelimiter = '[-\s_]';
if (is_array($needle)) {
$massagedNeedles = array_map(
function($s) use($regexpDelimiter, $wordDelimiter) {
$s = preg_quote($s, $regexpDelimiter);
$s = preg_replace('/' . $wordDelimiter . '/', $wordDelimiter, $s);
return $s;
},
$needle
);
$regexp = implode('|', $massagedNeedes);
} else {
$regexp = preg_replace('/' . $wordDelimiter . '/', preg_quote($needle, '/'));
}
$regexp = sprintf('/%s/i', $regexp);
$strpos = preg_match($regexp, $haystack, $matches, 0, $offset);
if ($strpos === false) {
return $haystack;
}
var_dump($matches);
exit;
return replaceStrings($haystack, $needle, $replacement, $offset);
}
replaceStrings($message, $search, $replace);
preferences:
38.81 ms | 402 KiB | 5 Q