Почему последний массив возвращает ноль?

  • Автор темы tim3
  • 41
  • Обновлено
  • 13, May 2024
  • #1
По какой-то причине последний массив возвращает NULL. Предполагается, что он будет возвращать «H11»:
 

<?php

$all_description_blb = array();

$all_etymologyStrongs = array();

$string1 = "";

$string2 = "";

$string3 = "";

$string4 = "";



$blbdescription = "<span style=\"color: red; font-weight: bold;\"> The same as <a class=\"nowrap\" href=\"lexicon.cfm?strongs=H9&amp;t=KJV\" title=\"English: lost thing, that which was lost\"><span class=\"Hb\">אֲבֵדָה</span> (H9)</a>, incorrectly written for <a class=\"nowrap\" href=\"lexicon.cfm?strongs=H11&amp;t=KJV\" title=\"English: destruction\"><span class=\"Hb\">אֲבַדּוֹן</span> (H11)</a> </span>";

preg_match_all("#<\b(a)\b[^>]*>(.*?)</\b(a)\b>#si", $blbdescription, $stripatag, PREG_SET_ORDER);

array_push($all_description_blb, $blbdescription);

$string1 .= "-----<br /><br />\n";

$string1 .= "stripatag <pre style=\"color: red; font-weight: bold;\">";

//var_dump($stripatag);

$string2 .= "</pre> ";

$string2 .= "<br /><br />\n";

$string3 .= "-----<br /><br />\n";

$string3 .= "stripbracketsforetymstrongsarray <pre style=\"color: red; font-weight: bold;\">";

$string4 .= "-----<br /><br />\n";

$string4 .= "stripatag [0][2] <span style=\"color: green; font-weight: bold;\">".$stripatag[0][2]."</span><br /><br />\n";

$string4 .= "stripatag [1][2] <span style=\"color: green; font-weight: bold;\">".$stripatag[1][2]."</span><br /><br />\n";//Notice: Undefined offset: 1 in C:\xampp\htdocs\biblewheel\update_outline\index.php on line 228

$string2 .= "---------------------------------------------------------------<br /><br />\n";

for($a=0;$a<count($stripatag);$a++){

preg_match_all("/.*\(([^)]*)\)/", $stripatag[$a][2], $stripbracketsforetymstrongsarray, PREG_SET_ORDER);

$etymologyStrongs = $stripbracketsforetymstrongsarray[$a][1];//$href[$a][2] or $href3array[$a][2]?

array_push($all_etymologyStrongs, $etymologyStrongs);

}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[URL='https://lumtu.com/yti/dk55kdGRodHRwOi8vdzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbCh52']http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/URL]">

<html xmlns="[URL='https://lumtu.com/yti/b0hh0bWxodHRwOi8vdzMub3JnLzE5OTkveGvkT']http://www.w3.org/1999/xhtml[/URL]">

<head>

<meta http-equiv="Content-Type" content="текст/html; кодировка = utf-8" />

<title>Untitled Document</title>

</head>

<body>

<?php

echo $string1;

var_dump($stripatag);

echo $string2;

echo $string3;

var_dump($all_etymologyStrongs);

echo $string2;

echo $string4;

?>

</body>

</html>

PHP:

tim3


Рег
08 Apr, 2015

Тем
1

Постов
2

Баллов
12
  • 20, May 2024
  • #2
Это близко к тому, что я ищу, но все еще есть уведомления:
 

<?php

$all_description_blb = array();

$all_etymologyStrongs = array();

$string1 = "";

$string2 = "";

$string3 = "";

$string4 = "";



$blbdescription = "<span style=\"color: red; font-weight: bold;\"> The same as <a class=\"nowrap\" href=\"lexicon.cfm?strongs=H9&amp;t=KJV\" title=\"English: lost thing, that which was lost\"><span class=\"Hb\">אֲבֵדָה</span> (H9)</a>, incorrectly written for <a class=\"nowrap\" href=\"lexicon.cfm?strongs=H11&amp;t=KJV\" title=\"English: destruction\"><span class=\"Hb\">אֲבַדּוֹן</span> (H11)</a> </span>";

preg_match_all("#<\b(a)\b[^>]*>(.*?)</\b(a)\b>#si", $blbdescription, $stripatag, PREG_SET_ORDER);

array_push($all_description_blb, $blbdescription);

$string1 .= "-----<br /><br />\n";

$string1 .= "stripatag <pre style=\"color: red; font-weight: bold;\">";

//var_dump($stripatag);

$string2 .= "</pre> ";

$string2 .= "<br /><br />\n";

$string3 .= "-----<br /><br />\n";

$string3 .= "stripbracketsforetymstrongsarray <pre style=\"color: red; font-weight: bold;\">";

$string4 .= "-----<br /><br />\n";

$string4 .= "stripatag [0][2] <span style=\"color: green; font-weight: bold;\">".$stripatag[0][2]."</span><br /><br />\n";

$string4 .= "stripatag [1][2] <span style=\"color: green; font-weight: bold;\">".$stripatag[1][2]."</span><br /><br />\n";//Notice: Undefined offset: 1 in ...\index.php on line 228

$string2 .= "---------------------------------------------------------------<br /><br />\n";

for($a=0;$a<count($stripatag);$a++){

preg_match_all("/.*\(([^)]*)\)/", $stripatag[$a][2], $stripbracketsforetymstrongsarray, PREG_SET_ORDER);

for($b=0;$b<count($stripatag[$a]);$b++){

$etymologyStrongs = $stripbracketsforetymstrongsarray[$b][1];//Line 34 is this $href[$a][2] or $href3array[$a][2]?

array_push($all_etymologyStrongs, $etymologyStrongs);

}

}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[URL='https://lumtu.com/yti/dk55kdGRodHRwOi8vdzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbCh52']http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/URL]">

<html xmlns="[URL='https://lumtu.com/yti/b0hh0bWxodHRwOi8vdzMub3JnLzE5OTkveGvkT']http://www.w3.org/1999/xhtml[/URL]">

<head>

<meta http-equiv="Content-Type" content="текст/html; кодировка = utf-8" />

<title>Untitled Document</title>

</head>

<body>

<?php

echo $string1;

var_dump($stripatag);

echo $string2;

echo $string3;

var_dump($all_etymologyStrongs);

echo $string2;

echo $string4;

?>

</body>

</html>

PHP:
 

vremennoorg


Рег
24 Aug, 2012

Тем
0

Постов
3

Баллов
3
  • 09, Jun 2024
  • #3
Кажется, должно быть
 $etymologyStrongs = $stripbracketsforetymstrongsarray[$a][1];//$href[$a][2] or $href3array[$a][2]?
PHP: вместо
 $etymologyStrongs = $stripbracketsforetymstrongsarray[0][1];//$href[$a][2] or $href3array[$a][2]?
PHP:
 

Eugeneus


Рег
29 Mar, 2016

Тем
1

Постов
3

Баллов
13
  • 09, Jun 2024
  • #4
Обновите регулярное выражение, включив в него буквенную часть соответствия:
 
<?php
preg_match_all('/\(([H|G]{1}[0-9]+)\)/', $blbdescription, $res);
Код (разметка): Также потратьте минуту, чтобы проверить это: https://regex101.com/r/xmrbJN/1

объяснит вам, что именно происходит с регулярным выражением.
 

Catarine


Рег
11 Mar, 2016

Тем
0

Постов
1

Баллов
1
  • 15, Jun 2024
  • #5
Да, это, возможно, открывает более простой способ кодирования PHP.

Возможно, мне придется внести большие изменения в свой код.

Я знаю, что вы имеете в виду, говоря о длинных именах переменных, однако спустя несколько месяцев, когда я оглядываюсь назад на коды, я хочу иметь возможность их распознавать.

Хорошо ли добавлять атрибуты тега в таблицу БД? или есть лучший способ разбить их и, самое главное, добавить заголовки тегов a в отдельный столбец?

Также есть способ убрать скобки, но оставить буквы с цифрами:
 

AStudent


Рег
17 Jan, 2014

Тем
2

Постов
4

Баллов
24
Тем
49554
Комментарии
57426
Опыт
552966

Интересно