Skocz do zawartości

[php]Jak zastąpić split w php 7


Ramalek

Rekomendowane odpowiedzi

Hej, nie znam za bardzo php, korzystam raczej z gotowych rozwiązań. Problem jest następujący:

W jednym szablonie WP plik thumb.php generuje miniaturki do postów, ale po przejściu na  php 7 przestał działać ze względu na funkcję split, która została z tego co wiem usunięta w php 7.

Wyskakuje:

Fatal error: Uncaught Error: Call to undefined function split()....

 

Kod:

 


function mime_type( $file ) {

	$frags = split( "\.", $file );
	$ext = strtolower( $frags[ count( $frags ) - 1 ] );
	$types = array(
 		'jpg'  => 'image/jpeg',
 		'jpeg' => 'image/jpeg',
 		'png'  => 'image/png',
 		'gif'  => 'image/gif',
 		'bmp'  => 'image/bmp', 
 		'doc'  => 'application/msword',
 		'xls'  => 'application/msword',
 		'xml'  => 'text/xml',
 		'html' => 'text/html'
 	);
	$mime_type = $types[ $ext ];
	if( !strlen( $mime_type ) ) { $mime_type = 'unknown'; }
	return $mime_type;
	
}

function valid_src_mime_type ( $mime_type ) {

	if( preg_match( "/jpg|jpeg|gif|png/i", $mime_type ) ) { return 1; }
	return 0;

}

 

Strona:

https://www.eit-centrum.waw.pl

 

Próbowałem zastąpić ją explode i  preg_split ale też nie działa,  takie zamienniki znalazłem w sieci, ale pewnie trzeba coś jeszcze zmienić w tym kodzie.

 

Czy ktoś z Was wie jak to przerobić?

 

Odnośnik do komentarza
Udostępnij na innych stronach

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Rórowałem zamienić.

 

Teraz dałem


function mime_type( $file ) {

	$frags = explode( "\.", $file );
	$ext = strtolower( $frags[ count( $frags ) - 1 ] );
	$types = array(
 		'jpg'  => 'image/jpeg',
 		'jpeg' => 'image/jpeg',
 		'png'  => 'image/png',
 		'gif'  => 'image/gif',
 		'bmp'  => 'image/bmp', 
 		'doc'  => 'application/msword',
 		'xls'  => 'application/msword',
 		'xml'  => 'text/xml',
 		'html' => 'text/html'
 	);
	$mime_type = $types[ $ext ];
	if( !strlen( $mime_type ) ) { $mime_type = 'unknown'; }
	return $mime_type;
	
}

z tym drugim preg_split też to samo. Zmienił się tylko komunikat:

Jak kliknie się na głównej  prawym i potem pokaż obrazek to takie coś się pojawia Invalid src mime type: unknown 

 

no ale nie ma alertu o split. Może nie wystarczy zamiana split na explode lub preg_split tylko jeszcze muszę coś zmienić. Nie wiem za bardzo jak to działa.

Przed chwilą, Ramalek napisał:

Rórowałem

 miało być próbowałem :)

Odnośnik do komentarza
Udostępnij na innych stronach

19 minut temu, Ramalek napisał:

Nie wiem za bardzo jak to działa.

Noooo w \. < to jest od wyrażenia regularnego i oznacza by rozbijało po kropce

$frags = split( "\.", $file );

 W funkcji explode

$frags = explode( "\.", $file );

rozbija po \.   przez co nie działa. Użyj samej kropki lub funkcji https://php.net/manual/en/function.preg-split.php

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności