Add emoji removal function and enhance XML processing for multiple feeds
This commit is contained in:
@@ -1,4 +1,13 @@
|
|||||||
<?php
|
<?php
|
||||||
|
function removeEmoji($text)
|
||||||
|
{
|
||||||
|
return preg_replace(
|
||||||
|
'/[\p{Cs}\p{So}\x{2600}-\x{27BF}\x{1F000}-\x{1FFFF}]/u',
|
||||||
|
'',
|
||||||
|
$text
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
// Adres źródłowego pliku XML
|
// Adres źródłowego pliku XML
|
||||||
$sourceUrl = 'https://xml-feed.app.softitdigital.com/ibra-makeup.myshopify.com/feeds/view/cmi5215vf1f4czycu5150rxkp.xml';
|
$sourceUrl = 'https://xml-feed.app.softitdigital.com/ibra-makeup.myshopify.com/feeds/view/cmi5215vf1f4czycu5150rxkp.xml';
|
||||||
|
|
||||||
@@ -12,41 +21,74 @@ $newDomain = 'https://ibra-makeup.pl';
|
|||||||
// --- 1. Pobranie XML ---
|
// --- 1. Pobranie XML ---
|
||||||
$xmlString = @file_get_contents($sourceUrl);
|
$xmlString = @file_get_contents($sourceUrl);
|
||||||
|
|
||||||
if ($xmlString === false) {
|
if ($xmlString === false)
|
||||||
die('Nie udało się pobrać pliku XML ze źródła.');
|
{
|
||||||
|
die('Nie udało się pobrać pliku XML ze źródła.');
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- 2. Wczytanie XML z przestrzeniami nazw ---
|
// --- 2. Wczytanie XML z przestrzeniami nazw ---
|
||||||
$xml = @simplexml_load_string($xmlString);
|
$xml = @simplexml_load_string($xmlString);
|
||||||
|
|
||||||
if ($xml === false) {
|
if ($xml === false)
|
||||||
die('Nie udało się zinterpretować pliku XML.');
|
{
|
||||||
|
die('Nie udało się zinterpretować pliku XML.');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Pobranie listy namespace’ów (m.in. "g")
|
// Pobranie listy namespace’ów (m.in. "g")
|
||||||
$namespaces = $xml->getNamespaces(true);
|
$namespaces = $xml->getNamespaces(true);
|
||||||
|
|
||||||
// Upewniamy się, że mamy namespace "g"
|
// Upewniamy się, że mamy namespace "g"
|
||||||
if (!isset($namespaces['g'])) {
|
if (!isset($namespaces['g']))
|
||||||
die('W pliku XML nie znaleziono przestrzeni nazw "g".');
|
{
|
||||||
|
die('W pliku XML nie znaleziono przestrzeni nazw "g".');
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- 3. Podmiana domeny w każdym <g:link> ---
|
// --- 3. Podmiana domeny + zamiana price <-> sale_price ---
|
||||||
foreach ($xml->channel->item as $item) {
|
foreach ($xml->channel->item as $item)
|
||||||
// Dzieci w przestrzeni nazw g
|
{
|
||||||
$gChildren = $item->children($namespaces['g']);
|
|
||||||
|
|
||||||
if (isset($gChildren->link)) {
|
// Dzieci w przestrzeni nazw g
|
||||||
$currentLink = (string) $gChildren->link;
|
$gChildren = $item->children($namespaces['g']);
|
||||||
// Podmiana samej domeny na nową
|
|
||||||
$newLink = str_replace($oldDomain, $newDomain, $currentLink);
|
// --- Podmiana linku ---
|
||||||
$gChildren->link = $newLink;
|
if (isset($gChildren->link))
|
||||||
}
|
{
|
||||||
|
$currentLink = (string) $gChildren->link;
|
||||||
|
$newLink = str_replace($oldDomain, $newDomain, $currentLink);
|
||||||
|
$gChildren->link = $newLink;
|
||||||
|
}
|
||||||
|
|
||||||
|
// --- Zamiana price <-> sale_price jeśli sale_price istnieje ---
|
||||||
|
if (isset($gChildren->sale_price) && trim((string)$gChildren->sale_price) !== '')
|
||||||
|
{
|
||||||
|
|
||||||
|
$originalPrice = (string)$gChildren->price;
|
||||||
|
$salePrice = (string)$gChildren->sale_price;
|
||||||
|
|
||||||
|
// Zamiana wartości
|
||||||
|
$gChildren->price = $salePrice;
|
||||||
|
$gChildren->sale_price = $originalPrice;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($gChildren->identifier_exists))
|
||||||
|
{
|
||||||
|
$gChildren->identifier_exists = 'true';
|
||||||
|
}
|
||||||
|
|
||||||
|
$gChildren->google_product_category = 'Health & Beauty > Personal Care > Cosmetics';
|
||||||
|
|
||||||
|
// --- Usuwanie emoji z opisu ---
|
||||||
|
if (isset($gChildren->description))
|
||||||
|
{
|
||||||
|
$cleanDescription = removeEmoji((string)$gChildren->description);
|
||||||
|
$gChildren->description = $cleanDescription;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- 4. Zapis zmodyfikowanego XML na serwerze ---
|
// --- 4. Zapis zmodyfikowanego XML na serwerze ---
|
||||||
if ($xml->asXML($outputFile) === false) {
|
if ($xml->asXML($outputFile) === false)
|
||||||
die('Nie udało się zapisać zmodyfikowanego pliku XML na serwerze.');
|
{
|
||||||
|
die('Nie udało się zapisać zmodyfikowanego pliku XML na serwerze.');
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- 5. Zbudowanie URL do zapisanego pliku i wyświetlenie go ---
|
// --- 5. Zbudowanie URL do zapisanego pliku i wyświetlenie go ---
|
||||||
|
|||||||
@@ -1,4 +1,12 @@
|
|||||||
<?php
|
<?php
|
||||||
|
function removeEmoji($text)
|
||||||
|
{
|
||||||
|
return preg_replace(
|
||||||
|
'/[\p{Cs}\p{So}\x{2600}-\x{27BF}\x{1F000}-\x{1FFFF}]/u',
|
||||||
|
'',
|
||||||
|
$text
|
||||||
|
);
|
||||||
|
}
|
||||||
// Adres źródłowego pliku XML
|
// Adres źródłowego pliku XML
|
||||||
$sourceUrl = 'https://xml-feed.app.softitdigital.com/655bc1.myshopify.com/feeds/view/cmi50kyg80827zycu278tbo2b.xml';
|
$sourceUrl = 'https://xml-feed.app.softitdigital.com/655bc1.myshopify.com/feeds/view/cmi50kyg80827zycu278tbo2b.xml';
|
||||||
|
|
||||||
@@ -12,41 +20,70 @@ $newDomain = 'https://laitica.pl';
|
|||||||
// --- 1. Pobranie XML ---
|
// --- 1. Pobranie XML ---
|
||||||
$xmlString = @file_get_contents($sourceUrl);
|
$xmlString = @file_get_contents($sourceUrl);
|
||||||
|
|
||||||
if ($xmlString === false) {
|
if ($xmlString === false)
|
||||||
die('Nie udało się pobrać pliku XML ze źródła.');
|
{
|
||||||
|
die('Nie udało się pobrać pliku XML ze źródła.');
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- 2. Wczytanie XML z przestrzeniami nazw ---
|
// --- 2. Wczytanie XML z przestrzeniami nazw ---
|
||||||
$xml = @simplexml_load_string($xmlString);
|
$xml = @simplexml_load_string($xmlString);
|
||||||
|
|
||||||
if ($xml === false) {
|
if ($xml === false)
|
||||||
die('Nie udało się zinterpretować pliku XML.');
|
{
|
||||||
|
die('Nie udało się zinterpretować pliku XML.');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Pobranie listy namespace’ów (m.in. "g")
|
// Pobranie listy namespace’ów (m.in. "g")
|
||||||
$namespaces = $xml->getNamespaces(true);
|
$namespaces = $xml->getNamespaces(true);
|
||||||
|
|
||||||
// Upewniamy się, że mamy namespace "g"
|
// Upewniamy się, że mamy namespace "g"
|
||||||
if (!isset($namespaces['g'])) {
|
if (!isset($namespaces['g']))
|
||||||
die('W pliku XML nie znaleziono przestrzeni nazw "g".');
|
{
|
||||||
|
die('W pliku XML nie znaleziono przestrzeni nazw "g".');
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- 3. Podmiana domeny w każdym <g:link> ---
|
// --- 3. Podmiana domeny w każdym <g:link> ---
|
||||||
foreach ($xml->channel->item as $item) {
|
foreach ($xml->channel->item as $item)
|
||||||
// Dzieci w przestrzeni nazw g
|
{
|
||||||
$gChildren = $item->children($namespaces['g']);
|
// Dzieci w przestrzeni nazw g
|
||||||
|
$gChildren = $item->children($namespaces['g']);
|
||||||
|
|
||||||
if (isset($gChildren->link)) {
|
if (isset($gChildren->link))
|
||||||
$currentLink = (string) $gChildren->link;
|
{
|
||||||
// Podmiana samej domeny na nową
|
$currentLink = (string) $gChildren->link;
|
||||||
$newLink = str_replace($oldDomain, $newDomain, $currentLink);
|
// Podmiana samej domeny na nową
|
||||||
$gChildren->link = $newLink;
|
$newLink = str_replace($oldDomain, $newDomain, $currentLink);
|
||||||
}
|
$gChildren->link = $newLink;
|
||||||
|
}
|
||||||
|
|
||||||
|
// --- Zamiana price <-> sale_price jeśli sale_price istnieje ---
|
||||||
|
if (isset($gChildren->sale_price) && trim((string)$gChildren->sale_price) !== '')
|
||||||
|
{
|
||||||
|
|
||||||
|
$originalPrice = (string)$gChildren->price;
|
||||||
|
$salePrice = (string)$gChildren->sale_price;
|
||||||
|
|
||||||
|
// Zamiana wartości
|
||||||
|
$gChildren->price = $salePrice;
|
||||||
|
$gChildren->sale_price = $originalPrice;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($gChildren->identifier_exists))
|
||||||
|
{
|
||||||
|
$gChildren->identifier_exists = 'true';
|
||||||
|
}
|
||||||
|
// --- Usuwanie emoji z opisu ---
|
||||||
|
if (isset($gChildren->description))
|
||||||
|
{
|
||||||
|
$cleanDescription = removeEmoji((string)$gChildren->description);
|
||||||
|
$gChildren->description = $cleanDescription;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- 4. Zapis zmodyfikowanego XML na serwerze ---
|
// --- 4. Zapis zmodyfikowanego XML na serwerze ---
|
||||||
if ($xml->asXML($outputFile) === false) {
|
if ($xml->asXML($outputFile) === false)
|
||||||
die('Nie udało się zapisać zmodyfikowanego pliku XML na serwerze.');
|
{
|
||||||
|
die('Nie udało się zapisać zmodyfikowanego pliku XML na serwerze.');
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- 5. Zbudowanie URL do zapisanego pliku i wyświetlenie go ---
|
// --- 5. Zbudowanie URL do zapisanego pliku i wyświetlenie go ---
|
||||||
|
|||||||
@@ -1,4 +1,12 @@
|
|||||||
<?php
|
<?php
|
||||||
|
function removeEmoji($text)
|
||||||
|
{
|
||||||
|
return preg_replace(
|
||||||
|
'/[\p{Cs}\p{So}\x{2600}-\x{27BF}\x{1F000}-\x{1FFFF}]/u',
|
||||||
|
'',
|
||||||
|
$text
|
||||||
|
);
|
||||||
|
}
|
||||||
// Adres źródłowego pliku XML
|
// Adres źródłowego pliku XML
|
||||||
$sourceUrl = 'https://xml-feed.app.softitdigital.com/wyprzedaze.myshopify.com/feeds/view/cmi52jjvt1ibbzycu3oy19bxe.xml';
|
$sourceUrl = 'https://xml-feed.app.softitdigital.com/wyprzedaze.myshopify.com/feeds/view/cmi52jjvt1ibbzycu3oy19bxe.xml';
|
||||||
|
|
||||||
@@ -12,41 +20,70 @@ $newDomain = 'https://wyprzedaze.pl';
|
|||||||
// --- 1. Pobranie XML ---
|
// --- 1. Pobranie XML ---
|
||||||
$xmlString = @file_get_contents($sourceUrl);
|
$xmlString = @file_get_contents($sourceUrl);
|
||||||
|
|
||||||
if ($xmlString === false) {
|
if ($xmlString === false)
|
||||||
die('Nie udało się pobrać pliku XML ze źródła.');
|
{
|
||||||
|
die('Nie udało się pobrać pliku XML ze źródła.');
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- 2. Wczytanie XML z przestrzeniami nazw ---
|
// --- 2. Wczytanie XML z przestrzeniami nazw ---
|
||||||
$xml = @simplexml_load_string($xmlString);
|
$xml = @simplexml_load_string($xmlString);
|
||||||
|
|
||||||
if ($xml === false) {
|
if ($xml === false)
|
||||||
die('Nie udało się zinterpretować pliku XML.');
|
{
|
||||||
|
die('Nie udało się zinterpretować pliku XML.');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Pobranie listy namespace’ów (m.in. "g")
|
// Pobranie listy namespace’ów (m.in. "g")
|
||||||
$namespaces = $xml->getNamespaces(true);
|
$namespaces = $xml->getNamespaces(true);
|
||||||
|
|
||||||
// Upewniamy się, że mamy namespace "g"
|
// Upewniamy się, że mamy namespace "g"
|
||||||
if (!isset($namespaces['g'])) {
|
if (!isset($namespaces['g']))
|
||||||
die('W pliku XML nie znaleziono przestrzeni nazw "g".');
|
{
|
||||||
|
die('W pliku XML nie znaleziono przestrzeni nazw "g".');
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- 3. Podmiana domeny w każdym <g:link> ---
|
// --- 3. Podmiana domeny w każdym <g:link> ---
|
||||||
foreach ($xml->channel->item as $item) {
|
foreach ($xml->channel->item as $item)
|
||||||
// Dzieci w przestrzeni nazw g
|
{
|
||||||
$gChildren = $item->children($namespaces['g']);
|
// Dzieci w przestrzeni nazw g
|
||||||
|
$gChildren = $item->children($namespaces['g']);
|
||||||
|
|
||||||
if (isset($gChildren->link)) {
|
if (isset($gChildren->link))
|
||||||
$currentLink = (string) $gChildren->link;
|
{
|
||||||
// Podmiana samej domeny na nową
|
$currentLink = (string) $gChildren->link;
|
||||||
$newLink = str_replace($oldDomain, $newDomain, $currentLink);
|
// Podmiana samej domeny na nową
|
||||||
$gChildren->link = $newLink;
|
$newLink = str_replace($oldDomain, $newDomain, $currentLink);
|
||||||
}
|
$gChildren->link = $newLink;
|
||||||
|
}
|
||||||
|
|
||||||
|
// --- Zamiana price <-> sale_price jeśli sale_price istnieje ---
|
||||||
|
if (isset($gChildren->sale_price) && trim((string)$gChildren->sale_price) !== '')
|
||||||
|
{
|
||||||
|
|
||||||
|
$originalPrice = (string)$gChildren->price;
|
||||||
|
$salePrice = (string)$gChildren->sale_price;
|
||||||
|
|
||||||
|
// Zamiana wartości
|
||||||
|
$gChildren->price = $salePrice;
|
||||||
|
$gChildren->sale_price = $originalPrice;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($gChildren->identifier_exists))
|
||||||
|
{
|
||||||
|
$gChildren->identifier_exists = 'true';
|
||||||
|
}
|
||||||
|
// --- Usuwanie emoji z opisu ---
|
||||||
|
if (isset($gChildren->description))
|
||||||
|
{
|
||||||
|
$cleanDescription = removeEmoji((string)$gChildren->description);
|
||||||
|
$gChildren->description = $cleanDescription;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- 4. Zapis zmodyfikowanego XML na serwerze ---
|
// --- 4. Zapis zmodyfikowanego XML na serwerze ---
|
||||||
if ($xml->asXML($outputFile) === false) {
|
if ($xml->asXML($outputFile) === false)
|
||||||
die('Nie udało się zapisać zmodyfikowanego pliku XML na serwerze.');
|
{
|
||||||
|
die('Nie udało się zapisać zmodyfikowanego pliku XML na serwerze.');
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- 5. Zbudowanie URL do zapisanego pliku i wyświetlenie go ---
|
// --- 5. Zbudowanie URL do zapisanego pliku i wyświetlenie go ---
|
||||||
|
|||||||
Reference in New Issue
Block a user