make use of str_starts_with / str_ends_with / str_contains
This commit is contained in:
parent
c783ff0e8d
commit
19a6b39c70
@ -298,7 +298,7 @@ class BasePage
|
|||||||
|
|
||||||
if (isset($_SERVER['HTTP_RANGE'])) {
|
if (isset($_SERVER['HTTP_RANGE'])) {
|
||||||
list(, $range) = explode('=', $_SERVER['HTTP_RANGE'], 2);
|
list(, $range) = explode('=', $_SERVER['HTTP_RANGE'], 2);
|
||||||
if (strpos($range, ',') !== false) {
|
if (str_contains($range, ',')) {
|
||||||
header('HTTP/1.1 416 Requested Range Not Satisfiable');
|
header('HTTP/1.1 416 Requested Range Not Satisfiable');
|
||||||
header("Content-Range: bytes $start-$end/$size");
|
header("Content-Range: bytes $start-$end/$size");
|
||||||
break;
|
break;
|
||||||
@ -335,7 +335,7 @@ class BasePage
|
|||||||
break;
|
break;
|
||||||
case PageMode::REDIRECT:
|
case PageMode::REDIRECT:
|
||||||
if ($this->flash) {
|
if ($this->flash) {
|
||||||
$this->redirect .= (strpos($this->redirect, "?") === false) ? "?" : "&";
|
$this->redirect .= str_contains($this->redirect, "?") ? "&" : "?";
|
||||||
$this->redirect .= "flash=" . url_escape(implode("\n", $this->flash));
|
$this->redirect .= "flash=" . url_escape(implode("\n", $this->flash));
|
||||||
}
|
}
|
||||||
header('Location: ' . $this->redirect);
|
header('Location: ' . $this->redirect);
|
||||||
|
@ -413,7 +413,7 @@ abstract class DataHandlerExtension extends Extension
|
|||||||
|
|
||||||
$image->filesize = $metadata['size'];
|
$image->filesize = $metadata['size'];
|
||||||
$image->hash = $metadata['hash'];
|
$image->hash = $metadata['hash'];
|
||||||
$image->filename = (($pos = strpos($metadata['filename'], '?')) !== false) ? substr($metadata['filename'], 0, $pos) : $metadata['filename'];
|
$image->filename = ($pos = str_contains($metadata['filename'], '?')) ? substr($metadata['filename'], 0, $pos) : $metadata['filename'];
|
||||||
|
|
||||||
if (array_key_exists("extension", $metadata)) {
|
if (array_key_exists("extension", $metadata)) {
|
||||||
$image->set_mime(MimeType::get_for_file($filename, $metadata["extension"]));
|
$image->set_mime(MimeType::get_for_file($filename, $metadata["extension"]));
|
||||||
|
@ -533,7 +533,7 @@ class Image
|
|||||||
$image_link = $config->get_string($template);
|
$image_link = $config->get_string($template);
|
||||||
|
|
||||||
if (!empty($image_link)) {
|
if (!empty($image_link)) {
|
||||||
if (!(strpos($image_link, "://") > 0) && !str_starts_with($image_link, "/")) {
|
if (!str_contains($image_link, "://") && !str_starts_with($image_link, "/")) {
|
||||||
$image_link = make_link($image_link);
|
$image_link = make_link($image_link);
|
||||||
}
|
}
|
||||||
$chosen = $image_link;
|
$chosen = $image_link;
|
||||||
|
@ -345,15 +345,21 @@ function unparse_url($parsed_url)
|
|||||||
if (!function_exists('str_starts_with')) {
|
if (!function_exists('str_starts_with')) {
|
||||||
function str_starts_with(string $haystack, string $needle): bool
|
function str_starts_with(string $haystack, string $needle): bool
|
||||||
{
|
{
|
||||||
$length = strlen($needle);
|
return \strncmp($haystack, $needle, \strlen($needle)) === 0;
|
||||||
return (substr($haystack, 0, $length) === $needle);
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!function_exists('str_ends_with')) {
|
||||||
function str_ends_with(string $haystack, string $needle): bool
|
function str_ends_with(string $haystack, string $needle): bool
|
||||||
{
|
{
|
||||||
$length = strlen($needle);
|
return $needle === '' || $needle === \substr($haystack, - \strlen($needle));
|
||||||
$start = $length * -1; //negative
|
}
|
||||||
return (substr($haystack, $start) === $needle);
|
}
|
||||||
|
|
||||||
|
if (!function_exists('str_contains')) {
|
||||||
|
function str_contains(string $haystack, string $needle): bool
|
||||||
|
{
|
||||||
|
return '' === $needle || false !== strpos($haystack, $needle);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ ini_set('assert.exception', '1'); // throw exceptions when failed
|
|||||||
set_error_handler(function ($errNo, $errStr) {
|
set_error_handler(function ($errNo, $errStr) {
|
||||||
// Should we turn ALL notices into errors? PHP allows a lot of
|
// Should we turn ALL notices into errors? PHP allows a lot of
|
||||||
// terrible things to happen by default...
|
// terrible things to happen by default...
|
||||||
if (strpos($errStr, 'Use of undefined constant ') === 0) {
|
if (str_starts_with($errStr, 'Use of undefined constant ')) {
|
||||||
throw new Exception("PHP Error#$errNo: $errStr");
|
throw new Exception("PHP Error#$errNo: $errStr");
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
|
@ -79,7 +79,7 @@ function modify_url(string $url, array $changes): string
|
|||||||
*/
|
*/
|
||||||
function make_http(string $link): string
|
function make_http(string $link): string
|
||||||
{
|
{
|
||||||
if (strpos($link, "://") > 0) {
|
if (str_contains($link, "://")) {
|
||||||
return $link;
|
return $link;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -105,7 +105,7 @@ function referer_or(string $dest, ?array $blacklist=null): string
|
|||||||
}
|
}
|
||||||
if ($blacklist) {
|
if ($blacklist) {
|
||||||
foreach ($blacklist as $b) {
|
foreach ($blacklist as $b) {
|
||||||
if (strstr($_SERVER['HTTP_REFERER'], $b)) {
|
if (str_contains($_SERVER['HTTP_REFERER'], $b)) {
|
||||||
return $dest;
|
return $dest;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -118,7 +118,7 @@ class User
|
|||||||
$my_user = User::by_name($name);
|
$my_user = User::by_name($name);
|
||||||
|
|
||||||
// If user tried to log in as "foo bar" and failed, try "foo_bar"
|
// If user tried to log in as "foo bar" and failed, try "foo_bar"
|
||||||
if (!$my_user && strpos($name, " ") !== false) {
|
if (!$my_user && str_contains($name, " ")) {
|
||||||
$my_user = User::by_name(str_replace(" ", "_", $name));
|
$my_user = User::by_name(str_replace(" ", "_", $name));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -53,11 +53,11 @@ function contact_link(): ?string
|
|||||||
return $text;
|
return $text;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strpos($text, "@")) {
|
if (str_contains($text, "@")) {
|
||||||
return "mailto:$text";
|
return "mailto:$text";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strpos($text, "/")) {
|
if (str_contains($text, "/")) {
|
||||||
return "http://$text";
|
return "http://$text";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -348,7 +348,7 @@ function path_to_tags(string $path): string
|
|||||||
// which is for inheriting to tags on the subfolder
|
// which is for inheriting to tags on the subfolder
|
||||||
$category_to_inherit = $tag;
|
$category_to_inherit = $tag;
|
||||||
} else {
|
} else {
|
||||||
if ($category!=""&&strpos($tag, ":") === false) {
|
if ($category!="" && !str_contains($tag, ":")) {
|
||||||
// This indicates that category inheritance is active,
|
// This indicates that category inheritance is active,
|
||||||
// and we've encountered a tag that does not specify a category.
|
// and we've encountered a tag that does not specify a category.
|
||||||
// So we attach the inherited category to the tag.
|
// So we attach the inherited category to the tag.
|
||||||
|
@ -553,7 +553,7 @@ class Artists extends Extension
|
|||||||
$urlsAsString = $inputs["urls"];
|
$urlsAsString = $inputs["urls"];
|
||||||
$urlsIDsAsString = $inputs["urlsIDs"];
|
$urlsIDsAsString = $inputs["urlsIDs"];
|
||||||
|
|
||||||
if (strpos($name, " ")) {
|
if (str_contains($name, " ")) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -695,7 +695,7 @@ class Artists extends Extension
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
$name = $inputs["name"];
|
$name = $inputs["name"];
|
||||||
if (strpos($name, " ")) {
|
if (str_contains($name, " ")) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -87,7 +87,7 @@ xanax
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// other words are literal
|
// other words are literal
|
||||||
if (strpos($comment, $word) !== false) {
|
if (str_contains($comment, $word)) {
|
||||||
throw $ex;
|
throw $ex;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -255,7 +255,7 @@ class BulkActions extends Extension
|
|||||||
$pos_tag_array = [];
|
$pos_tag_array = [];
|
||||||
$neg_tag_array = [];
|
$neg_tag_array = [];
|
||||||
foreach ($tags as $new_tag) {
|
foreach ($tags as $new_tag) {
|
||||||
if (strpos($new_tag, '-') === 0) {
|
if (str_starts_with($new_tag, '-')) {
|
||||||
$neg_tag_array[] = substr($new_tag, 1);
|
$neg_tag_array[] = substr($new_tag, 1);
|
||||||
} else {
|
} else {
|
||||||
$pos_tag_array[] = $new_tag;
|
$pos_tag_array[] = $new_tag;
|
||||||
|
@ -55,7 +55,7 @@ class CustomHtmlHeaders extends Extension
|
|||||||
$sitename_in_title = $config->get_string("sitename_in_title");
|
$sitename_in_title = $config->get_string("sitename_in_title");
|
||||||
|
|
||||||
// sitename is already in title (can occur on index & other pages)
|
// sitename is already in title (can occur on index & other pages)
|
||||||
if (strstr($page->title, $site_title)) {
|
if (str_contains($page->title, $site_title)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,7 +55,7 @@ class CBZFileHandler extends DataHandlerExtension
|
|||||||
sort($names);
|
sort($names);
|
||||||
$cover = $names[0];
|
$cover = $names[0];
|
||||||
foreach ($names as $name) {
|
foreach ($names as $name) {
|
||||||
if (strpos(strtolower($name), "cover") !== false) {
|
if (str_contains(strtolower($name), "cover")) {
|
||||||
$cover = $name;
|
$cover = $name;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -301,7 +301,7 @@ class ImageIO extends Extension
|
|||||||
public function onParseLinkTemplate(ParseLinkTemplateEvent $event)
|
public function onParseLinkTemplate(ParseLinkTemplateEvent $event)
|
||||||
{
|
{
|
||||||
$fname = $event->image->get_filename();
|
$fname = $event->image->get_filename();
|
||||||
$base_fname = strpos($fname, '.') ? substr($fname, 0, strrpos($fname, '.')) : $fname;
|
$base_fname = str_contains($fname, '.') ? substr($fname, 0, strrpos($fname, '.')) : $fname;
|
||||||
|
|
||||||
$event->replace('$id', (string)$event->image->id);
|
$event->replace('$id', (string)$event->image->id);
|
||||||
$event->replace('$hash_ab', substr($event->image->hash, 0, 2));
|
$event->replace('$hash_ab', substr($event->image->hash, 0, 2));
|
||||||
|
@ -46,10 +46,10 @@ class Index extends Extension
|
|||||||
if (
|
if (
|
||||||
SPEED_HAX
|
SPEED_HAX
|
||||||
&& (
|
&& (
|
||||||
strstr($ua, "Googlebot") !== false
|
str_contains($ua, "Googlebot")
|
||||||
|| strstr($ua, "YandexBot") !== false
|
|| str_contains($ua, "YandexBot")
|
||||||
|| strstr($ua, "bingbot") !== false
|
|| str_contains($ua, "bingbot")
|
||||||
|| strstr($ua, "msnbot") !== false
|
|| str_contains($ua, "msnbot")
|
||||||
)
|
)
|
||||||
&& (
|
&& (
|
||||||
$count_search_terms > 1
|
$count_search_terms > 1
|
||||||
|
@ -113,7 +113,7 @@ class IPBan extends Extension
|
|||||||
$ips = []; # "0.0.0.0" => 123;
|
$ips = []; # "0.0.0.0" => 123;
|
||||||
$networks = []; # "0.0.0.0/32" => 456;
|
$networks = []; # "0.0.0.0/32" => 456;
|
||||||
foreach ($rows as $ip => $id) {
|
foreach ($rows as $ip => $id) {
|
||||||
if (strstr($ip, '/')) {
|
if (str_contains($ip, '/')) {
|
||||||
$networks[$ip] = $id;
|
$networks[$ip] = $id;
|
||||||
} else {
|
} else {
|
||||||
$ips[$ip] = $id;
|
$ips[$ip] = $id;
|
||||||
|
@ -7,8 +7,8 @@ use function MicroHTML\A;
|
|||||||
|
|
||||||
if ( // kill these glitched requests immediately
|
if ( // kill these glitched requests immediately
|
||||||
!empty($_SERVER["REQUEST_URI"])
|
!empty($_SERVER["REQUEST_URI"])
|
||||||
&& strpos(@$_SERVER["REQUEST_URI"], "/http") !== false
|
&& str_contains(@$_SERVER["REQUEST_URI"], "/http")
|
||||||
&& strpos(@$_SERVER["REQUEST_URI"], "paheal.net") !== false
|
&& str_contains(@$_SERVER["REQUEST_URI"], "paheal.net")
|
||||||
) {
|
) {
|
||||||
die("No");
|
die("No");
|
||||||
}
|
}
|
||||||
|
@ -52,7 +52,7 @@ class SetupTheme extends Themelet
|
|||||||
$h_value = html_escape((string)$value);
|
$h_value = html_escape((string)$value);
|
||||||
|
|
||||||
$h_box = "";
|
$h_box = "";
|
||||||
if (is_string($value) && strpos($value, "\n") > 0) {
|
if (is_string($value) && str_contains($value, "\n")) {
|
||||||
$h_box .= "<textarea cols='50' rows='4' name='_config_$h_name'>$h_value</textarea>";
|
$h_box .= "<textarea cols='50' rows='4' name='_config_$h_name'>$h_value</textarea>";
|
||||||
} else {
|
} else {
|
||||||
$h_box .= "<input type='text' name='_config_$h_name' value='$h_value'>";
|
$h_box .= "<input type='text' name='_config_$h_name' value='$h_value'>";
|
||||||
|
@ -68,7 +68,7 @@ class TagSetEvent extends Event
|
|||||||
$this->metatags = [];
|
$this->metatags = [];
|
||||||
|
|
||||||
foreach ($tags as $tag) {
|
foreach ($tags as $tag) {
|
||||||
if ((strpos($tag, ':') === false) && (strpos($tag, '=') === false)) {
|
if ((!str_contains($tag, ':')) && (!str_contains($tag, '='))) {
|
||||||
//Tag doesn't contain : or =, meaning it can't possibly be a metatag.
|
//Tag doesn't contain : or =, meaning it can't possibly be a metatag.
|
||||||
//This should help speed wise, as it avoids running every single tag through a bunch of preg_match instead.
|
//This should help speed wise, as it avoids running every single tag through a bunch of preg_match instead.
|
||||||
array_push($this->tags, $tag);
|
array_push($this->tags, $tag);
|
||||||
|
@ -198,8 +198,8 @@ class TagList extends Extension
|
|||||||
$i++;
|
$i++;
|
||||||
$arg = "tag$i";
|
$arg = "tag$i";
|
||||||
$args[$arg] = Tag::sqlify($tag);
|
$args[$arg] = Tag::sqlify($tag);
|
||||||
if (strpos($tag, '*') === false
|
if (!str_contains($tag, '*')
|
||||||
&& strpos($tag, '?') === false) {
|
&& !str_contains($tag, '?')) {
|
||||||
$where[] = " tag = :$arg ";
|
$where[] = " tag = :$arg ";
|
||||||
} else {
|
} else {
|
||||||
$where[] = " tag LIKE :$arg ";
|
$where[] = " tag LIKE :$arg ";
|
||||||
@ -587,7 +587,7 @@ class TagList extends Extension
|
|||||||
$starting_tags = [];
|
$starting_tags = [];
|
||||||
$tags_ok = true;
|
$tags_ok = true;
|
||||||
foreach ($wild_tags as $tag) {
|
foreach ($wild_tags as $tag) {
|
||||||
if ($tag[0] == "-" || strpos($tag, "tagme")===0) {
|
if ($tag[0] == "-" || str_starts_with($tag, "tagme")) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
$tag = Tag::sqlify($tag);
|
$tag = Tag::sqlify($tag);
|
||||||
|
@ -205,7 +205,7 @@ class UploadTheme extends Themelet
|
|||||||
public function display_upload_error(Page $page, string $title, string $message)
|
public function display_upload_error(Page $page, string $title, string $message)
|
||||||
{
|
{
|
||||||
// this message has intentional HTML in it...
|
// this message has intentional HTML in it...
|
||||||
$message = strpos($message, "already has hash") ? $message : html_escape($message);
|
$message = str_contains($message, "already has hash") ? $message : html_escape($message);
|
||||||
$page->add_block(new Block($title, $message));
|
$page->add_block(new Block($title, $message));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user