Я пытаюсь получить подстроку между двумя строками, которые начинаются с арабским словом تفاحة
и заканчивается --------------------------------------<br>
Как получить подстроку между словом справа налево (арабское) и тегом с использованием php?
Моего текущий код работает хорошо для нахождения подстроки между двумя английскими словами, но терпит неудачу, если начинаешь слово является арабским. Может ли кто-нибудь помочь мне решить эту проблему? Заранее спасибо.
<?
$returned_content = get_data('./input.php');
$SearchWord_Value = $_GET['SearchWord'];
/* gets the data from a URL */
function get_data($url) {
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
function get_string_between($string, $start, $end){
$string = ' ' . $string;
$ini = strpos($string, $start);
if ($ini == 0) return '';
$ini += strlen($start);
$len = strpos($string, $end, $ini) - $ini;
return substr($string, $ini, $len);
}
$parsed = get_string_between($returned_content, $SearchWord_Value, '--------------------------------------<br>');
echo "<br><br>Found Block:<br>".$parsed;
?>
Полный пример строки для получения данных между двумя строками:
تفاحة:
<br><img src="http://asite.com/1.jpg"><br>
<a href="https://asite.com/1.html">تفاحة</a> <br />
<a href="http://asite.com/link.html">link1 </a> <br />
<a href="http://asite.com/link.html">link2 </a> <br />
<a href="http://asite.com/link.html">link3 </a> <br />
<a href="http://asite.com/link.html">link4 </a> <br />
<a href="http://asite.com/link.html">link5 </a> <br />
--------------------------------------<br>
Edit: Это новый вход образца:
$str = <<<'STR'
تفاحة:
<br><img src="http://asite.com/1.jpg"><br>
<a href="https://asite.com/1.html">تفاحة</a> <br />
<a href="http://asite.com/link.html">link1 </a> <br />
<a href="http://asite.com/link.html">link2 </a> <br />
<a href="http://asite.com/link.html">link3 </a> <br />
<a href="http://asite.com/link.html">link4 </a> <br />
<a href="http://asite.com/link.html">link5 </a> <br />
--------------------------------------<br>
Mango:
<br><img src="http://asite.com/1.jpg"><br>
<a href="https://asite.com/Mango.html">Mango</a> <br />
<a href="http://asite.com/linkMango.html">link1Mango </a> <br />
<a href="http://asite.com/linkMango.html">link2Mango </a> <br />
<a href="http://asite.com/linkMango.html">link3Mango </a> <br />
<a href="http://asite.com/linkMango.html">link4Mango </a> <br />
<a href="http://asite.com/linkMango.html">link5Mango </a> <br />
--------------------------------------<br>
خوخ:
<br><img src="http://asite.com/1.jpg"><br>
<a href="https://asite.com/1.html">خوخ</a> <br />
<a href="http://asite.com/linkpeach.html">link1خوخ </a> <br />
<a href="http://asite.com/linkpeach.html">link2خوخ </a> <br />
<a href="http://asite.com/linkpeach.html">link3خوخ </a> <br />
<a href="http://asite.com/linkpeach.html">link4خوخ </a> <br />
<a href="http://asite.com/linkpeach.html">link5خوخ </a> <br />
--------------------------------------<br>
STR;
$start = 'تفاحة:';
$end = '--------------------------------------<br>';
//var_dump(get_string_between($str, $start, $end));
$parsed2 = get_string_between($str, $start, $end);
echo "found :".$parsed2;
Спасибо за ответ. Я попытался использовать ваш метод, но, к сожалению, он помещает все содержимое return_content вместо блока, который мне нужен! Как использовать переменную внутри шаблона? Я хочу использовать метод get method внутри него. – user1788736
Пожалуйста, взгляните на мое редактирование. Я реорганизовал вашу функцию, чтобы работать в соответствии с вашими требованиями. Попробуйте использовать обновленную версию функции 'get_string_between()' в своем ответе и дайте мне знать, если это сработает для вас. – Sherif
Я использовал вашу версию get_string_between, и у меня не было никаких данных: $ parsed2 = get_string_between2 ($ return_content, $ SearchWord_Value, '--------------------- -----------------
'); echo "
Найдено:
". $ Parsed2; – user1788736