->plaintext
, чтобы получить только текст внутри тега. Если вам нужны изображения, то текста внутри тега img нет и чтобы получить ссылку на него используйте ->src
. После обработки желательно сбрасывать переменные$html = file_get_html($file_path);
// Find all paragraphs
$paragraphs = $html->find( 'p' );
foreach ( $paragraphs as $key => $paragraph ) {
var_dump($paragraph->plaintext);
}
// Find all images
$images = $html->find( 'img' );
foreach ( $images as $key => $image ) {
var_dump($image->src);
}
$html->clear();
unset($html);
$reserve = get_post_meta($post->ID, 'reserve', true);
$sold_out = get_post_meta($post->ID, 'sold_out', true);
if ( ($reserve != 'off') && ($sold_out != 'off') ) {
echo '<div class="prop-item-top-badge">';
if( $reserve == 'on' ) {
echo '<div class="badge badge-reserve">' . __( "Reserve", "restate" ) . '</div>';
}
if( $sold_out == 'on' ) {
echo '<div class="badge badge-sold_out">' . __( "Sold out", "restate" ) . '</div>';
}
echo '</div>';
}
json_decode()
, чтобы конвертировать в массив, пересобрать и вернуть в json обратно с помощью json_encode()
$json = '{"param1": "value1","param1": "value1","param1": "value1","param1": {},"param1": "value1"}';
$json = json_decode( $json, true );
var_dump($json); // печатает array(1) { ["param1"]=> string(6) "value1" }
GLOB_ONLYDIR
, чтобы просто узнать количество папок:$countDir = count( glob( 'includes/*', GLOB_ONLYDIR ) );
$date = date("d-m-Y");
$countDir = countDir($fileDir, $date);
var_dump($countDir);
function countDir( $path, $date, $count = 0 ) {
if( file_exists($path) && is_dir($path) ) {
$dirHandle = opendir($path);
while ( false !== ($file = readdir($dirHandle)) ) {
// исключаем папки с названием '.' и '..'
if ( $file != '.' && $file != '..' ) {
$filePath = $path . '/' . $file;
// если папка
if ( is_dir( $filePath ) ) {
// сраниваем $date с датой создания
if ( $date == date("d-m-Y", filectime($filePath)) ) {
$count++;
}
} // end if is_dir( $filePath )
}
} // end while
closedir($dirHandle);
}
return $count;
}
$e->href = 'my link';
->find()
, будет критическая ошибкаremoveAttribute()
- это функция js, а не phpfile_put_contents()
возвращает false, в случае ошибки, пишите это условие для дебага ->clear()
. По какой-то причине он все равно остается в переменной, поэтому я делаю еще и unset()
. Закрывать директорию нужно после всех операцию, а не посреди циклаif ( $dh = opendir($dir) ) {
$data = file_get_html('index.html');
foreach( $data->find('div') as $div ){
if ( $div->class == 'col-md-12' ) {
$div->class = 'col-12 col-md-6';
}
}
$data->clear();
unset($data);
closedir($dh);
}
pathinfo()
$string = 'site.by/cat/subcat/name/';
var_dump(pathinfo($string, PATHINFO_BASENAME)); // выводим "name"
explode()
$string = 'site.by/cat/subcat/name/';
$string = preg_replace('/(\/)$/', '', $string); // убираем последний слеш если есть
$array = explode('/', $string); // делим строку на массив
$array = array_reverse($array); // переворачиваем
var_dump($array[0]); // выводим первый элемент "name"
$string = 'site.by/cat/subcat/name/';
$name = preg_replace('/(([\w\d\-\_\:\.\/]+)\/([^\/]+)[\/]?)$/', '$3', $string);
var_dump($name); // выводим "name"
$string = "[id875783012|Alex]";
$string = preg_replace('/[\D]+/', '', $string);
$string = 'id' . $string;
var_dump($string);
preg_match()
так:$string = "[id875783012|Alex]";
$regexp = "/id(?<id>[\d]+)\|/";
$reglink = preg_match($regexp, $string, $match);
$id = $match['id'];
var_dump($id);
$arr_1 = '{
"description": "DESC",
"affter": {
"text": "TEXT"
}
}';
$arr_2 = '{
"name": "Название",
"description": "Описание",
"affter": {
"text": "после",
"icon": "иконка до"
}
}';
$arr_1 = json_decode( $arr_1, true );
$arr_2 = json_decode( $arr_2, true );
$arr_all = array_replace_recursive( $arr_2, $arr_1 );
var_dump( $arr_all );
$mylist2 = array(1,2,3,4,5,6,7);
$count = count($mylist2);
$newArray = array();
foreach ( $mylist2 as $key => $value ) {
if ( ($count-1) == $key ) {
$newArray[0] = $value;
} else {
$newArray[$key+1] = $value;
}
}
ksort($newArray);
var_dump(implode(", ", $newArray));
$descriptionJson = json_decode(file_get_contents($path), true);
$titles = array();
foreach ( $descriptionJson as $key => $descriptionJsonValue ) {
$titles[] = $descriptionJsonValue['title'];
}
$count = count($requests); // получаем кол-во объектов для ключа
foreach ( $requests as $key => $request ) {
if ( array_search($request->title, $titles) == false ) {
$count++;
$descriptionJson[$count]['title'] = $request->title;
$descriptionJson[$count]['thumbnail'] = ImageGenerator::imageDescriptions($request->file('photo'));
$descriptionJson[$count]['descriptions'] = $request->description;
}
}
$product->descriptions = json_encode($descriptionJson);
$product->save();
$arr1 = [
1 => ['id' => 1, 'name' => 'DJ'],
2 => ['id' => 2, 'name' => 'Bass'],
3 => ['id' => 3, 'name' => 'Vocal'],
];
$arr3 = array();
foreach ( $arr1 as $key => $arr1_value ) {
$arr3[$arr1_value['id']] = $arr1_value['name'];
}
$arr2 = [
['name' => 'Alex', 'specId' => 1],
['name' => 'Tim', 'specId' => 2],
['name' => 'Dave', 'specId' => 3],
];
echo '<ul>';
foreach ( $arr2 as $key => $arr2_value ) {
echo '<li>' . $arr3[$arr2_value['specId']] . '</li>';
}
echo '</ul>';
sanitize_title()
; Но некоторые спецсимволы будут конвертированы в юникод-формат вида %2С и т.д. Лучше всего декодировать их с помощью urldecode()
и удалить из строки все символы за исключением латинских букв, цифр, дефиса и нижнего подчеркивания$post_slug = urldecode( sanitize_title($post_title) );
$post_slug = preg_replace('/([^a-z\d\-\_])/', '', $post_slug);
$post_date = get_the_date( "Y-m-d" ); // дата поста
$current_time = date( "Y-m-d H:i:s" ); // текущее время
$post_date_unix = strtotime($current_time); // Unix
$future_time = date( "Y-m-d H:i:s", strtotime($current_time . ' + 3 hours') ); // +3 часа от текущего времени